diff --git a/.github/workflows/check-protos.yaml b/.github/workflows/check-protos.yaml new file mode 100644 index 0000000000000..6fcc9fdacadac --- /dev/null +++ b/.github/workflows/check-protos.yaml @@ -0,0 +1,63 @@ +# This workflow exists to make sure that we know when the protos and the generated code +# are out of sync. In this workflow we generate code from the protos and make sure it +# matches what is checked in. + +# To make this much faster we don't use our own rust setup script. There is no need +# right now because the packages we're installing work fine with the latest version +# of Rust, at least at the time of writing. Famous last words of course, it's possible +# that the preinstalled version of the toolchain will break this at some point, but +# that probably won't happen for quite a while. + +name: "Check Protos" +on: + pull_request: + types: [labeled, opened, synchronize, reopened, auto_merge_enabled] + push: + branches: + - main + +# Cancel redundant builds. +concurrency: + # For push and workflow_dispatch events we use `github.sha` in the concurrency group and don't really cancel each other out/limit concurrency. + # For pull_request events newer jobs cancel earlier jobs to save on CI etc. + group: ${{ github.workflow }}-${{ github.event_name }}-${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.sha || github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + # Install buf, which we use to generate code from the protos for Rust and TS. + - name: Install buf + uses: bufbuild/buf-setup-action@v1.24.0 + + - uses: pre-commit/action@v3.0.0 + + # Install protoc itself. + - name: Install Protoc + uses: arduino/setup-protoc@v2 + + # Set up pnpm. + - uses: pnpm/action-setup@v2 + with: + version: 8.6.2 + + # Set up Poetry. + - name: Install Python deps for generating code from protos + uses: ./.github/actions/python-setup + with: + pyproject_directory: ./protos/python + + # Install the Rust, TS, and Python codegen deps. + - name: Install deps for generating code from protos + run: cd protos && ./scripts/install_deps.sh + + # Finally, generate code based on the protos. + - name: Generate code + run: cd protos && ./scripts/build_protos.sh + + # Confirm that nothing has changed. + - name: Confirm that nothing has changed + run: git diff --exit-code diff --git a/Cargo.lock b/Cargo.lock index 206cea2b8540b..f6c361187e652 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3068,11 +3068,12 @@ dependencies = [ [[package]] name = "aptos-protos" -version = "1.1.1" +version = "1.1.2" dependencies = [ "futures-core", "pbjson", "prost 0.12.1", + "prost-types 0.12.1", "serde", "tonic 0.10.0", ] diff --git a/Cargo.toml b/Cargo.toml index 3a1231aab7c9a..311820fa01644 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,7 +75,6 @@ members = [ "crates/aptos-openapi", "crates/aptos-profiler", "crates/aptos-proptest-helpers", - "crates/aptos-protos", "crates/aptos-push-metrics", "crates/aptos-rate-limiter", "crates/aptos-rest-client", @@ -134,6 +133,7 @@ members = [ "peer-monitoring-service/client", "peer-monitoring-service/server", "peer-monitoring-service/types", + "protos/rust", "sdk", "secure/net", "secure/storage", @@ -373,7 +373,7 @@ aptos-peer-monitoring-service-server = { path = "peer-monitoring-service/server" aptos-peer-monitoring-service-types = { path = "peer-monitoring-service/types" } aptos-profiler = { path = "crates/aptos-profiler" } aptos-proptest-helpers = { path = "crates/aptos-proptest-helpers" } -aptos-protos = { path = "crates/aptos-protos" } +aptos-protos = { path = "protos/rust" } aptos-proxy = { path = "crates/proxy" } aptos-push-metrics = { path = "crates/aptos-push-metrics" } aptos-rate-limiter = { path = "crates/aptos-rate-limiter" } diff --git a/crates/aptos-protos/Cargo.lock b/crates/aptos-protos/Cargo.lock deleted file mode 100644 index 241ef5c768683..0000000000000 --- a/crates/aptos-protos/Cargo.lock +++ /dev/null @@ -1,1167 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "anyhow" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26fa4d7e3f2eebadf743988fc8aec9fa9a9e82611acafd77c1462ed6262440a" - -[[package]] -name = "aptos-protos" -version = "1.0.0" -dependencies = [ - "pbjson", - "prost", - "serde", - "tonic", -] - -[[package]] -name = "async-stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" -dependencies = [ - "async-stream-impl", - "futures-core", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-trait" -version = "0.1.59" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "axum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" -dependencies = [ - "async-trait", - "axum-core", - "bitflags", - "bytes", - "futures-util", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower", - "tower-http", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bumpalo" -version = "3.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" - -[[package]] -name = "bytes" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" - -[[package]] -name = "cc" -version = "1.0.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "flate2" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "futures-channel" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" - -[[package]] -name = "futures-sink" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" - -[[package]] -name = "futures-task" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" - -[[package]] -name = "futures-util" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "h2" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range-header" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" - -[[package]] -name = "js-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.137" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "matchit" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.42.0", -] - -[[package]] -name = "once_cell" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "pbjson" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599fe9aefc2ca0df4a96179b3075faee2cacb89d4cf947a00b9a89152dfffc9d" -dependencies = [ - "base64", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro2" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b18e655c21ff5ac2084a5ad0611e827b3f92badf79f4910b5a5c58f4d87ff0" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "quote" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rustls" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" -dependencies = [ - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" -dependencies = [ - "base64", -] - -[[package]] -name = "rustversion" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" - -[[package]] -name = "schannel" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" -dependencies = [ - "lazy_static", - "windows-sys 0.36.1", -] - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "security-framework" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.144" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.144" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "syn" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" - -[[package]] -name = "tokio" -version = "1.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio", - "pin-project-lite", - "socket2", - "tokio-macros", - "winapi", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-macros" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-stream" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64", - "bytes", - "flate2", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "prost-derive", - "rustls-native-certs", - "rustls-pemfile", - "tokio", - "tokio-rustls", - "tokio-stream", - "tokio-util", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" -dependencies = [ - "bitflags", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "unicode-ident" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - -[[package]] -name = "web-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/crates/aptos-protos/Cargo.toml b/crates/aptos-protos/Cargo.toml deleted file mode 100644 index ab8c127573269..0000000000000 --- a/crates/aptos-protos/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "aptos-protos" -version = "1.1.1" - -# Workspace inherited keys -authors = { workspace = true } -edition = { workspace = true } -homepage = { workspace = true } -license = { workspace = true } -publish = { workspace = true } -repository = { workspace = true } -rust-version = { workspace = true } - -[dependencies] -futures-core = { workspace = true } -pbjson = { workspace = true } -prost = { workspace = true } -serde = { workspace = true } -tonic = { workspace = true } diff --git a/crates/aptos-protos/README.md b/crates/aptos-protos/README.md deleted file mode 100644 index 70ae07703de06..0000000000000 --- a/crates/aptos-protos/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Aptos Protobufs - -This is a simple crate for working with the [Aptos](https://aptos.org) protobufs - - -## Getting Started -We use [buf](https://docs.buf.build/introduction) to generate protos. - -installation is easy on mac -```bash -brew install bufbuild/buf/buf -``` -or for linux -```bash -# Substitute BIN for your bin directory. -# Substitute VERSION for the current released version. -BIN="/usr/local/bin" && \ -VERSION="1.7.0" && \ - curl -sSL \ - "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" \ - -o "${BIN}/buf" && \ - chmod +x "${BIN}/buf" -``` -please check [here](https://docs.buf.build/installation) for other OSes - -Generating the protos requires `protoc`, as well as a few plugins: -```bash -cargo install protoc-gen-prost -cargo install protoc-gen-prost-serde -cargo install protoc-gen-prost-crate -cargo install protoc-gen-tonic -``` - -## Usage -1. Make changes to protobuf; -2. `buf lint` for code quality check; -3. `buf generate` for the generated code; -4. `pre-commit run --all-files` to add headers to generated code; -5. Commit your changes. diff --git a/crates/aptos-protos/src/lib.rs b/crates/aptos-protos/src/lib.rs deleted file mode 100644 index 783e15c0b544e..0000000000000 --- a/crates/aptos-protos/src/lib.rs +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright © Aptos Foundation -// SPDX-License-Identifier: Apache-2.0 -#![allow(clippy::needless_borrow)] - -mod pb; -pub use pb::aptos::*; diff --git a/crates/aptos-protos/src/pb/aptos.indexer.v1.rs b/crates/aptos-protos/src/pb/aptos.indexer.v1.rs deleted file mode 100644 index 1fc1b3a16332b..0000000000000 --- a/crates/aptos-protos/src/pb/aptos.indexer.v1.rs +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright © Aptos Foundation - -// @generated -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTransactionsRequest { - /// Required; start version of current stream. - #[prost(uint64, optional, tag="1")] - pub starting_version: ::core::option::Option, - /// Optional; number of transactions to return in current stream. - /// If not present, return an infinite stream of transactions. - #[prost(uint64, optional, tag="2")] - pub transactions_count: ::core::option::Option, - /// Optional; number of transactions in each `TransactionsResponse` for current stream. - /// If not present, default to 1000. If larger than 1000, request will be rejected. - #[prost(uint64, optional, tag="3")] - pub batch_size: ::core::option::Option, -} -/// TransactionsResponse is a batch of transactions. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TransactionsResponse { - /// Required; transactions data. - #[prost(message, repeated, tag="1")] - pub transactions: ::prost::alloc::vec::Vec, - /// Required; chain id. - #[prost(uint64, optional, tag="2")] - pub chain_id: ::core::option::Option, -} -/// Encoded file descriptor set for the `aptos.indexer.v1` package -pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xa9, 0x0e, 0x0a, 0x1f, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x01, 0x52, - 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x32, 0x70, 0x0a, 0x07, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x4a, 0xda, 0x09, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, - 0x22, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, - 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, - 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, - 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, - 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, - 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, - 0x00, 0x14, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x1e, 0x0a, - 0x39, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0b, 0x02, 0x3c, 0x1a, 0x2c, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x00, 0x04, 0x12, 0x03, 0x0b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x05, 0x12, 0x03, 0x0b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x0b, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, - 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x0b, 0x27, 0x3b, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x00, 0x08, 0x06, 0x12, 0x03, 0x0b, 0x28, 0x3a, 0x0a, - 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0f, 0x02, 0x3e, 0x1a, 0x7b, 0x20, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, - 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x01, 0x04, 0x12, 0x03, 0x0f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, - 0x05, 0x12, 0x03, 0x0f, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, - 0x03, 0x0f, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0f, - 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x0f, 0x29, 0x3d, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x0f, 0x2a, 0x3c, 0x0a, - 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x13, 0x02, 0x21, 0x1a, 0xa6, 0x01, - 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x60, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, - 0x03, 0x13, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x13, - 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x13, 0x12, 0x1c, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x13, 0x1f, 0x20, 0x0a, 0x3e, - 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x17, 0x00, 0x1d, 0x01, 0x1a, 0x32, 0x20, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, - 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x17, 0x08, 0x1c, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, - 0x02, 0x00, 0x12, 0x03, 0x19, 0x04, 0x40, 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, - 0x12, 0x03, 0x19, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, - 0x19, 0x0d, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x2e, - 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x3e, 0x3f, 0x0a, - 0x22, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x1c, 0x04, 0x36, 0x1a, 0x15, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x69, - 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1c, 0x04, - 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1c, 0x0d, 0x13, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1c, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x1c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x1c, 0x21, 0x35, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, - 0x01, 0x08, 0x06, 0x12, 0x03, 0x1c, 0x22, 0x34, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, - 0x1f, 0x00, 0x22, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x0f, - 0x0a, 0x7a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, 0x21, 0x04, 0x56, 0x1a, 0x6d, 0x20, - 0x47, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x21, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x00, 0x02, 0x12, 0x03, 0x21, 0x18, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, - 0x06, 0x12, 0x03, 0x21, 0x39, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x21, 0x40, 0x54, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -]; -include!("aptos.indexer.v1.serde.rs"); -include!("aptos.indexer.v1.tonic.rs"); -// @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.rs b/crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.rs deleted file mode 100644 index d94ef3bceef9c..0000000000000 --- a/crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.rs +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright © Aptos Foundation - -// @generated -// Transaction data is transferred via 1 stream with batches until terminated. -// One stream consists: -// StreamStatus: INIT with version x -// loop k: -// TransactionOutput data(size n) -// StreamStatus: BATCH_END with version x + (k + 1) * n - 1 - -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TransactionsOutput { - #[prost(message, repeated, tag="1")] - pub transactions: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StreamStatus { - #[prost(enumeration="stream_status::StatusType", tag="1")] - pub r#type: i32, - /// Required. Start version of current batch/stream, inclusive. - #[prost(uint64, tag="2")] - pub start_version: u64, - /// End version of current *batch*, inclusive. - #[prost(uint64, optional, tag="3")] - pub end_version: ::core::option::Option, -} -/// Nested message and enum types in `StreamStatus`. -pub mod stream_status { - #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] - #[repr(i32)] - pub enum StatusType { - Unspecified = 0, - /// Signal for the start of the stream. - Init = 1, - /// Signal for the end of the batch. - BatchEnd = 2, - } - impl StatusType { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - StatusType::Unspecified => "STATUS_TYPE_UNSPECIFIED", - StatusType::Init => "STATUS_TYPE_INIT", - StatusType::BatchEnd => "STATUS_TYPE_BATCH_END", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "STATUS_TYPE_UNSPECIFIED" => Some(Self::Unspecified), - "STATUS_TYPE_INIT" => Some(Self::Init), - "STATUS_TYPE_BATCH_END" => Some(Self::BatchEnd), - _ => None, - } - } - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTransactionsFromNodeRequest { - /// Required; start version of current stream. - /// If not set will panic somewhere - #[prost(uint64, optional, tag="1")] - pub starting_version: ::core::option::Option, - /// Optional; number of transactions to return in current stream. - /// If not set, response streams infinitely. - #[prost(uint64, optional, tag="2")] - pub transactions_count: ::core::option::Option, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TransactionsFromNodeResponse { - /// Making sure that all the responses include a chain id - #[prost(uint32, tag="3")] - pub chain_id: u32, - #[prost(oneof="transactions_from_node_response::Response", tags="1, 2")] - pub response: ::core::option::Option, -} -/// Nested message and enum types in `TransactionsFromNodeResponse`. -pub mod transactions_from_node_response { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Response { - #[prost(message, tag="1")] - Status(super::StreamStatus), - #[prost(message, tag="2")] - Data(super::TransactionsOutput), - } -} -/// Encoded file descriptor set for the `aptos.internal.fullnode.v1` package -pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xb0, 0x16, 0x0a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2f, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x76, 0x31, 0x2f, - 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x1a, - 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0a, - 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, 0x5a, 0x0a, - 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, - 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, - 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, - 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, - 0x48, 0x01, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, - 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa2, 0x01, 0x0a, 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, - 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x91, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, - 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x4a, 0x8d, 0x0e, 0x0a, 0x06, - 0x12, 0x04, 0x03, 0x00, 0x38, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, - 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, - 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, - 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x23, - 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, 0x0a, 0xfe, 0x01, 0x0a, 0x02, - 0x04, 0x00, 0x12, 0x04, 0x10, 0x00, 0x12, 0x01, 0x32, 0xf1, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, 0x20, - 0x31, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, 0x3a, 0x0a, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x20, 0x49, 0x4e, - 0x49, 0x54, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x6f, 0x70, 0x20, 0x6b, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x28, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6e, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, - 0x20, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x20, 0x2b, 0x20, 0x28, 0x6b, 0x20, 0x2b, - 0x20, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x6e, 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x00, 0x01, 0x12, 0x03, 0x10, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, - 0x12, 0x03, 0x11, 0x02, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, - 0x11, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x11, 0x0b, - 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x11, 0x2c, 0x38, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x11, 0x3c, 0x3d, 0x0a, 0x0a, 0x0a, - 0x02, 0x04, 0x01, 0x12, 0x04, 0x14, 0x00, 0x21, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, - 0x12, 0x03, 0x14, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, 0x15, - 0x02, 0x1b, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x15, 0x07, - 0x11, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x16, 0x04, 0x20, - 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x04, 0x1b, - 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, 0x1e, 0x1f, - 0x0a, 0x34, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x04, 0x19, 0x1a, - 0x25, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x01, - 0x01, 0x12, 0x03, 0x18, 0x04, 0x14, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x01, - 0x02, 0x12, 0x03, 0x18, 0x17, 0x18, 0x0a, 0x31, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x02, - 0x12, 0x03, 0x1a, 0x04, 0x1e, 0x1a, 0x22, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, - 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1a, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, - 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x1a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, - 0x00, 0x12, 0x03, 0x1c, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x1c, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1c, - 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1c, 0x14, 0x15, - 0x0a, 0x4a, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x1e, 0x02, 0x1b, 0x1a, 0x3d, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1e, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x1e, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x1e, 0x19, 0x1a, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, - 0x20, 0x02, 0x37, 0x1a, 0x2c, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x2a, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x2a, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x20, 0x02, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, 0x20, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x20, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x20, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x02, 0x08, 0x12, 0x03, 0x20, 0x22, 0x36, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x02, 0x08, - 0x06, 0x12, 0x03, 0x20, 0x23, 0x35, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x23, 0x00, - 0x2b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x23, 0x08, 0x26, 0x0a, 0x5a, - 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x26, 0x02, 0x3c, 0x1a, 0x4d, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x20, - 0x73, 0x6f, 0x6d, 0x65, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x00, 0x04, 0x12, 0x03, 0x26, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, - 0x05, 0x12, 0x03, 0x26, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x26, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x26, - 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x26, 0x27, 0x3b, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x00, 0x08, 0x06, 0x12, 0x03, 0x26, 0x28, 0x3a, 0x0a, - 0x76, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x02, 0x3e, 0x1a, 0x69, 0x20, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x65, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, - 0x12, 0x03, 0x2a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, - 0x2a, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2a, 0x12, - 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2a, 0x27, 0x28, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x2a, 0x29, 0x3d, 0x0a, 0x0d, 0x0a, - 0x06, 0x04, 0x02, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x2a, 0x2a, 0x3c, 0x0a, 0x0a, 0x0a, 0x02, - 0x04, 0x03, 0x12, 0x04, 0x2d, 0x00, 0x34, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, - 0x03, 0x2d, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x08, 0x00, 0x12, 0x04, 0x2e, 0x02, - 0x31, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x08, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x08, 0x10, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2f, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x2f, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, - 0x03, 0x30, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, 0x30, - 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x17, 0x1b, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x30, 0x1e, 0x1f, 0x0a, 0x44, - 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x33, 0x02, 0x16, 0x1a, 0x37, 0x20, 0x4d, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x20, 0x69, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x05, 0x12, 0x03, 0x33, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x33, 0x09, 0x11, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, 0x03, 0x33, 0x14, 0x15, 0x0a, 0x0a, - 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x36, 0x00, 0x38, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, - 0x01, 0x12, 0x03, 0x36, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, - 0x37, 0x04, 0x6e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x37, 0x08, - 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x37, 0x20, 0x3e, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x37, 0x49, 0x4f, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x37, 0x50, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -]; -include!("aptos.internal.fullnode.v1.serde.rs"); -include!("aptos.internal.fullnode.v1.tonic.rs"); -// @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.util.timestamp.rs b/crates/aptos-protos/src/pb/aptos.util.timestamp.rs deleted file mode 100644 index 769ba8033297f..0000000000000 --- a/crates/aptos-protos/src/pb/aptos.util.timestamp.rs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright © Aptos Foundation - -// @generated -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Timestamp { - /// Represents seconds of UTC time since Unix epoch - /// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to - /// 9999-12-31T23:59:59Z inclusive. - #[prost(int64, tag="1")] - pub seconds: i64, - /// Non-negative fractions of a second at nanosecond resolution. Negative - /// second values with fractions must still have non-negative nanos values - /// that count forward in time. Must be from 0 to 999,999,999 - /// inclusive. - #[prost(int32, tag="2")] - pub nanos: i32, -} -/// Encoded file descriptor set for the `aptos.util.timestamp` package -pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xd8, 0x05, 0x0a, 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x74, 0x69, 0x6c, 0x2f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x61, 0x70, 0x74, 0x6f, 0x73, - 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, - 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x4a, 0xd4, 0x04, 0x0a, - 0x06, 0x12, 0x04, 0x03, 0x00, 0x12, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, - 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, - 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, - 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, - 0x1d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x07, 0x00, 0x12, 0x01, 0x0a, 0x0a, 0x0a, - 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x07, 0x08, 0x11, 0x0a, 0x9c, 0x01, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x00, 0x12, 0x03, 0x0b, 0x02, 0x14, 0x1a, 0x8e, 0x01, 0x20, 0x52, 0x65, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x55, 0x54, 0x43, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, - 0x55, 0x6e, 0x69, 0x78, 0x20, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x0a, 0x20, 0x31, 0x39, 0x37, 0x30, - 0x2d, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x5a, - 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, - 0x30, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, - 0x30, 0x30, 0x5a, 0x20, 0x74, 0x6f, 0x0a, 0x20, 0x39, 0x39, 0x39, 0x39, 0x2d, 0x31, 0x32, 0x2d, - 0x33, 0x31, 0x54, 0x32, 0x33, 0x3a, 0x35, 0x39, 0x3a, 0x35, 0x39, 0x5a, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x05, 0x12, 0x03, 0x0b, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x0b, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, - 0x12, 0x13, 0x0a, 0xe4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x02, 0x12, - 0x1a, 0xd6, 0x01, 0x20, 0x4e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x20, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x69, - 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x0a, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x20, 0x4d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x0a, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x01, 0x05, 0x12, 0x03, 0x11, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x11, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x11, 0x10, 0x11, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -]; -include!("aptos.util.timestamp.serde.rs"); -// @@protoc_insertion_point(module) diff --git a/protos/README.md b/protos/README.md new file mode 100644 index 0000000000000..5af13239da35f --- /dev/null +++ b/protos/README.md @@ -0,0 +1,17 @@ +# Protos +This directory contains the protobuf definitions for all Aptos services. For the sake of simplifying release and minimizing potential version conflicts, we include all protos and code generated from those protos in one place. + +If you update the proto definitions in `proto/`, you can regenerate the code for all languages based on those protos by running this script: +```bash +./scripts/build_protos.sh +``` + +If you haven't installed deps yet, run this script from this directory: +```bash +./scripts/install_deps.sh +``` + +Also make sure to install buf, e.g. for Mac: +``` +brew install bufbuild/buf/buf +``` diff --git a/crates/aptos-protos/buf.gen.yaml b/protos/buf.rust.gen.yaml similarity index 61% rename from crates/aptos-protos/buf.gen.yaml rename to protos/buf.rust.gen.yaml index 23a1068445bf8..e910b0adca580 100644 --- a/crates/aptos-protos/buf.gen.yaml +++ b/protos/buf.rust.gen.yaml @@ -1,19 +1,20 @@ version: v1 +managed: + enabled: true plugins: - name: prost - out: src/pb + out: rust/src/pb/ opt: - #- bytes=. - file_descriptor_set - name: prost-serde - out: src/pb + out: rust/src/pb/ - name: prost-crate - out: src/pb + out: rust/src/pb/ strategy: all opt: - no_features - name: tonic - out: src/pb \ No newline at end of file + out: rust/src/pb/ diff --git a/protos/buf.ts.gen.yaml b/protos/buf.ts.gen.yaml new file mode 100644 index 0000000000000..e9ed7bce3349f --- /dev/null +++ b/protos/buf.ts.gen.yaml @@ -0,0 +1,19 @@ +version: v1 +managed: + enabled: true +plugins: + - plugin: buf.build/community/stephenh-ts-proto + out: typescript/src + opt: + # See an explanation of these options here: + # https://github.com/stephenh/ts-proto + - outputServices=grpc-js + - outputIndex=true + - esModuleInterop=true + - forceLong=bigint + - useOptionals=all + - addGrpcMetadata=true + - useAsyncIterable=true + - useMapType=true + # https://github.com/stephenh/ts-proto/issues/449 + - useExactTypes=false diff --git a/crates/aptos-protos/buf.work.yaml b/protos/buf.work.yaml similarity index 100% rename from crates/aptos-protos/buf.work.yaml rename to protos/buf.work.yaml diff --git a/protos/proto/aptos/bigquery_schema/v1/transaction.proto b/protos/proto/aptos/bigquery_schema/v1/transaction.proto new file mode 100644 index 0000000000000..20ec9be5f076c --- /dev/null +++ b/protos/proto/aptos/bigquery_schema/v1/transaction.proto @@ -0,0 +1,33 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +// Proto2 is required. +// Current BigQuery runs over proto2, thus optional(nullable) +// field with default value will be ignored. For example, +// `int64 value = null` will be translated to 0 under column `value`. +// To avoid any analytics hassle, proto2 is required here. +syntax = "proto2"; + +package aptos.bigquery_schema.transaction.v1; + +// Transaction is a simplified representation for the transaction +// happened on the chain. Mainly built for streaming into BigQuery. +// It matches with the structure defined for the transaction in Indexer. +message Transaction { + required int64 version = 1; + required int64 block_height = 2; + required string hash = 3; + required string type = 4; + optional string payload = 5; + required string state_change_hash = 6; + required string event_root_hash = 7; + optional string state_checkpoint_hash = 8; + required uint64 gas_used = 9; + required bool success = 10; + required string vm_status = 11; + required string accumulator_root_hash = 12; + required int64 num_events = 13; + required int64 num_write_set_changes = 14; + required int64 epoch = 15; + required int64 inserted_at = 16; +} diff --git a/crates/aptos-protos/proto/aptos/indexer/v1/raw_data.proto b/protos/proto/aptos/indexer/v1/raw_data.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/indexer/v1/raw_data.proto rename to protos/proto/aptos/indexer/v1/raw_data.proto diff --git a/crates/aptos-protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto b/protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto rename to protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto diff --git a/crates/aptos-protos/proto/aptos/remote_executor/v1/network_msg.proto b/protos/proto/aptos/remote_executor/v1/network_msg.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/remote_executor/v1/network_msg.proto rename to protos/proto/aptos/remote_executor/v1/network_msg.proto diff --git a/crates/aptos-protos/proto/aptos/transaction/v1/transaction.proto b/protos/proto/aptos/transaction/v1/transaction.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/transaction/v1/transaction.proto rename to protos/proto/aptos/transaction/v1/transaction.proto diff --git a/crates/aptos-protos/proto/aptos/util/timestamp/timestamp.proto b/protos/proto/aptos/util/timestamp/timestamp.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/util/timestamp/timestamp.proto rename to protos/proto/aptos/util/timestamp/timestamp.proto diff --git a/crates/aptos-protos/proto/buf.yaml b/protos/proto/buf.yaml similarity index 100% rename from crates/aptos-protos/proto/buf.yaml rename to protos/proto/buf.yaml diff --git a/protos/python/.gitignore b/protos/python/.gitignore new file mode 100644 index 0000000000000..90572f75ee0dd --- /dev/null +++ b/protos/python/.gitignore @@ -0,0 +1,161 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +myvenv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/protos/python/CHANGELOG.md b/protos/python/CHANGELOG.md new file mode 100644 index 0000000000000..9418b622443db --- /dev/null +++ b/protos/python/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the Aptos Protos will be captured in this file. This changelog is written by hand for now. + +## Unreleased + +## 1.1.2 +- Initial release. diff --git a/protos/python/CONTRIBUTING.md b/protos/python/CONTRIBUTING.md new file mode 100644 index 0000000000000..64157f1138925 --- /dev/null +++ b/protos/python/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Aptos Protos + +## Regenerating code +Note: This is only for debugging. For normal uses, just use scripts/build_protos.sh in the parent directory. + +Install deps: +``` +poetry install +``` + +Generate code: +``` +poetry run poe generate +``` + +## Publishing +To publish the package, follow these steps. + +First, make sure you have updated the changelog and bumped the package version if necessary. + +Configure Poetry with the PyPi credentials: +``` +poetry config pypi-token.pypi +``` + +You can get the token from our credential management system, search for PyPi. + +Build and publish: +``` +poetry publish --build +``` diff --git a/protos/python/README.md b/protos/python/README.md new file mode 100644 index 0000000000000..ff9dfd244de6c --- /dev/null +++ b/protos/python/README.md @@ -0,0 +1,18 @@ +# Aptos Protos + +This repository contains the protobuf definitions for Aptos. + +## Usage +Import generated classes like this: +```python +from aptos_protos.aptos.transaction.v1.transaction_pb2 import Transaction +``` + +Then use them like this: +```python +def parse(transaction: Transaction): + # Parse the transaction. +``` + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/protos/python/aptos_protos/__init__.py b/protos/python/aptos_protos/__init__.py new file mode 100644 index 0000000000000..9a5f310a9de6e --- /dev/null +++ b/protos/python/aptos_protos/__init__.py @@ -0,0 +1,7 @@ +# The following is required to make it possible to use the generated code as a package: +# https://github.com/protocolbuffers/protobuf/issues/881#issuecomment-1615919615 + +import os +import sys + +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py new file mode 100644 index 0000000000000..d40812b67bc1f --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/bigquery_schema/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n*aptos/bigquery_schema/v1/transaction.proto\x12$aptos.bigquery_schema.transaction.v1"\xe0\x02\n\x0bTransaction\x12\x0f\n\x07version\x18\x01 \x02(\x03\x12\x14\n\x0c\x62lock_height\x18\x02 \x02(\x03\x12\x0c\n\x04hash\x18\x03 \x02(\t\x12\x0c\n\x04type\x18\x04 \x02(\t\x12\x0f\n\x07payload\x18\x05 \x01(\t\x12\x19\n\x11state_change_hash\x18\x06 \x02(\t\x12\x17\n\x0f\x65vent_root_hash\x18\x07 \x02(\t\x12\x1d\n\x15state_checkpoint_hash\x18\x08 \x01(\t\x12\x10\n\x08gas_used\x18\t \x02(\x04\x12\x0f\n\x07success\x18\n \x02(\x08\x12\x11\n\tvm_status\x18\x0b \x02(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x0c \x02(\t\x12\x12\n\nnum_events\x18\r \x02(\x03\x12\x1d\n\x15num_write_set_changes\x18\x0e \x02(\x03\x12\r\n\x05\x65poch\x18\x0f \x02(\x03\x12\x13\n\x0binserted_at\x18\x10 \x02(\x03' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.bigquery_schema.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TRANSACTION"]._serialized_start = 85 + _globals["_TRANSACTION"]._serialized_end = 437 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi new file mode 100644 index 0000000000000..e789d40ec12bb --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi @@ -0,0 +1,78 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Transaction(_message.Message): + __slots__ = [ + "version", + "block_height", + "hash", + "type", + "payload", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "num_events", + "num_write_set_changes", + "epoch", + "inserted_at", + ] + VERSION_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + NUM_EVENTS_FIELD_NUMBER: _ClassVar[int] + NUM_WRITE_SET_CHANGES_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + INSERTED_AT_FIELD_NUMBER: _ClassVar[int] + version: int + block_height: int + hash: str + type: str + payload: str + state_change_hash: str + event_root_hash: str + state_checkpoint_hash: str + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: str + num_events: int + num_write_set_changes: int + epoch: int + inserted_at: int + def __init__( + self, + version: _Optional[int] = ..., + block_height: _Optional[int] = ..., + hash: _Optional[str] = ..., + type: _Optional[str] = ..., + payload: _Optional[str] = ..., + state_change_hash: _Optional[str] = ..., + event_root_hash: _Optional[str] = ..., + state_checkpoint_hash: _Optional[str] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[str] = ..., + num_events: _Optional[int] = ..., + num_write_set_changes: _Optional[int] = ..., + epoch: _Optional[int] = ..., + inserted_at: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py new file mode 100644 index 0000000000000..8a9393943bdf4 --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py new file mode 100644 index 0000000000000..e6348eda54c76 --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/indexer/v1/raw_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x1f\x61ptos/indexer/v1/raw_data.proto\x12\x10\x61ptos.indexer.v1\x1a&aptos/transaction/v1/transaction.proto"\xb4\x01\n\x16GetTransactionsRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x17\n\nbatch_size\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_countB\r\n\x0b_batch_size"w\n\x14TransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\x0b\n\t_chain_id2p\n\x07RawData\x12\x65\n\x0fGetTransactions\x12(.aptos.indexer.v1.GetTransactionsRequest\x1a&.aptos.indexer.v1.TransactionsResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.indexer.v1.raw_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _GETTRANSACTIONSREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._options = None + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._serialized_options = b"0\001" + _globals["_GETTRANSACTIONSREQUEST"]._serialized_start = 94 + _globals["_GETTRANSACTIONSREQUEST"]._serialized_end = 274 + _globals["_TRANSACTIONSRESPONSE"]._serialized_start = 276 + _globals["_TRANSACTIONSRESPONSE"]._serialized_end = 395 + _globals["_RAWDATA"]._serialized_start = 397 + _globals["_RAWDATA"]._serialized_end = 509 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi new file mode 100644 index 0000000000000..4d53fd9de6088 --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi @@ -0,0 +1,43 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetTransactionsRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count", "batch_size"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + BATCH_SIZE_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + batch_size: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + batch_size: _Optional[int] = ..., + ) -> None: ... + +class TransactionsResponse(_message.Message): + __slots__ = ["transactions", "chain_id"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + chain_id: int + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py new file mode 100644 index 0000000000000..9c17321add39d --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.indexer.v1 import raw_data_pb2 as aptos_dot_indexer_dot_v1_dot_raw__data__pb2 + + +class RawDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactions = channel.unary_stream( + "/aptos.indexer.v1.RawData/GetTransactions", + request_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + response_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + ) + + +class RawDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactions(self, request, context): + """Get transactions batch without any filtering from starting version and end if transaction count is present.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_RawDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactions": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactions, + request_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.FromString, + response_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.indexer.v1.RawData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class RawData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactions( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.indexer.v1.RawData/GetTransactions", + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py new file mode 100644 index 0000000000000..454819ebde23f --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/internal/fullnode/v1/fullnode_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n.aptos/internal/fullnode/v1/fullnode_data.proto\x12\x1a\x61ptos.internal.fullnode.v1\x1a&aptos/transaction/v1/transaction.proto"M\n\x12TransactionsOutput\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction"\xf2\x01\n\x0cStreamStatus\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.aptos.internal.fullnode.v1.StreamStatus.StatusType\x12\x15\n\rstart_version\x18\x02 \x01(\x04\x12\x1c\n\x0b\x65nd_version\x18\x03 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01"Z\n\nStatusType\x12\x1b\n\x17STATUS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STATUS_TYPE_INIT\x10\x01\x12\x19\n\x15STATUS_TYPE_BATCH_END\x10\x02\x42\x0e\n\x0c_end_version"\x94\x01\n\x1eGetTransactionsFromNodeRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_count"\xb8\x01\n\x1cTransactionsFromNodeResponse\x12:\n\x06status\x18\x01 \x01(\x0b\x32(.aptos.internal.fullnode.v1.StreamStatusH\x00\x12>\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..aptos.internal.fullnode.v1.TransactionsOutputH\x00\x12\x10\n\x08\x63hain_id\x18\x03 \x01(\rB\n\n\x08response2\xa2\x01\n\x0c\x46ullnodeData\x12\x91\x01\n\x17GetTransactionsFromNode\x12:.aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest\x1a\x38.aptos.internal.fullnode.v1.TransactionsFromNodeResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.internal.fullnode.v1.fullnode_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _STREAMSTATUS.fields_by_name["end_version"]._options = None + _STREAMSTATUS.fields_by_name["end_version"]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _globals["_TRANSACTIONSOUTPUT"]._serialized_start = 118 + _globals["_TRANSACTIONSOUTPUT"]._serialized_end = 195 + _globals["_STREAMSTATUS"]._serialized_start = 198 + _globals["_STREAMSTATUS"]._serialized_end = 440 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_start = 334 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_end = 424 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_start = 443 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_end = 591 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_start = 594 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_end = 778 + _globals["_FULLNODEDATA"]._serialized_start = 781 + _globals["_FULLNODEDATA"]._serialized_end = 943 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi new file mode 100644 index 0000000000000..cade8b80a51e8 --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi @@ -0,0 +1,77 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class TransactionsOutput(_message.Message): + __slots__ = ["transactions"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + ) -> None: ... + +class StreamStatus(_message.Message): + __slots__ = ["type", "start_version", "end_version"] + + class StatusType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + STATUS_TYPE_UNSPECIFIED: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_INIT: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_BATCH_END: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_UNSPECIFIED: StreamStatus.StatusType + STATUS_TYPE_INIT: StreamStatus.StatusType + STATUS_TYPE_BATCH_END: StreamStatus.StatusType + TYPE_FIELD_NUMBER: _ClassVar[int] + START_VERSION_FIELD_NUMBER: _ClassVar[int] + END_VERSION_FIELD_NUMBER: _ClassVar[int] + type: StreamStatus.StatusType + start_version: int + end_version: int + def __init__( + self, + type: _Optional[_Union[StreamStatus.StatusType, str]] = ..., + start_version: _Optional[int] = ..., + end_version: _Optional[int] = ..., + ) -> None: ... + +class GetTransactionsFromNodeRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + ) -> None: ... + +class TransactionsFromNodeResponse(_message.Message): + __slots__ = ["status", "data", "chain_id"] + STATUS_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + status: StreamStatus + data: TransactionsOutput + chain_id: int + def __init__( + self, + status: _Optional[_Union[StreamStatus, _Mapping]] = ..., + data: _Optional[_Union[TransactionsOutput, _Mapping]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py new file mode 100644 index 0000000000000..bb869dab77dfd --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py @@ -0,0 +1,80 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.internal.fullnode.v1 import ( + fullnode_data_pb2 as aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2, +) + + +class FullnodeDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactionsFromNode = channel.unary_stream( + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + request_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + response_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + ) + + +class FullnodeDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactionsFromNode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_FullnodeDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactionsFromNode": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactionsFromNode, + request_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.FromString, + response_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.internal.fullnode.v1.FullnodeData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class FullnodeData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactionsFromNode( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py new file mode 100644 index 0000000000000..12f1426abea4d --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/transaction/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.util.timestamp import ( + timestamp_pb2 as aptos_dot_util_dot_timestamp_dot_timestamp__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n&aptos/transaction/v1/transaction.proto\x12\x14\x61ptos.transaction.v1\x1a$aptos/util/timestamp/timestamp.proto"\x9a\x01\n\x05\x42lock\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x12\n\x06height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x10\n\x08\x63hain_id\x18\x04 \x01(\r"\xcc\x05\n\x0bTransaction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x13\n\x07version\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32%.aptos.transaction.v1.TransactionInfo\x12\x11\n\x05\x65poch\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x0c\x62lock_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12?\n\x04type\x18\x06 \x01(\x0e\x32\x31.aptos.transaction.v1.Transaction.TransactionType\x12H\n\x0e\x62lock_metadata\x18\x07 \x01(\x0b\x32..aptos.transaction.v1.BlockMetadataTransactionH\x00\x12;\n\x07genesis\x18\x08 \x01(\x0b\x32(.aptos.transaction.v1.GenesisTransactionH\x00\x12L\n\x10state_checkpoint\x18\t \x01(\x0b\x32\x30.aptos.transaction.v1.StateCheckpointTransactionH\x00\x12\x35\n\x04user\x18\n \x01(\x0b\x32%.aptos.transaction.v1.UserTransactionH\x00"\xb8\x01\n\x0fTransactionType\x12 \n\x1cTRANSACTION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSACTION_TYPE_GENESIS\x10\x01\x12#\n\x1fTRANSACTION_TYPE_BLOCK_METADATA\x10\x02\x12%\n!TRANSACTION_TYPE_STATE_CHECKPOINT\x10\x03\x12\x19\n\x15TRANSACTION_TYPE_USER\x10\x04\x42\n\n\x08txn_data"\xbe\x01\n\x18\x42lockMetadataTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x05round\x18\x02 \x01(\x04\x42\x02\x30\x01\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event\x12#\n\x1bprevious_block_votes_bitvec\x18\x04 \x01(\x0c\x12\x10\n\x08proposer\x18\x05 \x01(\t\x12\x1f\n\x17\x66\x61iled_proposer_indices\x18\x06 \x03(\r"r\n\x12GenesisTransaction\x12/\n\x07payload\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x1c\n\x1aStateCheckpointTransaction"}\n\x0fUserTransaction\x12=\n\x07request\x18\x01 \x01(\x0b\x32,.aptos.transaction.v1.UserTransactionRequest\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x9f\x01\n\x05\x45vent\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.EventKey\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12,\n\x04type\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x10\n\x08type_str\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t"\xa1\x02\n\x0fTransactionInfo\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x19\n\x11state_change_hash\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65vent_root_hash\x18\x03 \x01(\x0c\x12"\n\x15state_checkpoint_hash\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x08gas_used\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x0f\n\x07success\x18\x06 \x01(\x08\x12\x11\n\tvm_status\x18\x07 \x01(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x08 \x01(\x0c\x12\x35\n\x07\x63hanges\x18\t \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChangeB\x18\n\x16_state_checkpoint_hash"@\n\x08\x45ventKey\x12\x1b\n\x0f\x63reation_number\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\t"\xb0\x02\n\x16UserTransactionRequest\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0emax_gas_amount\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0egas_unit_price\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x42\n\x19\x65xpiration_timestamp_secs\x18\x05 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x39\n\x07payload\x18\x06 \x01(\x0b\x32(.aptos.transaction.v1.TransactionPayload\x12\x32\n\tsignature\x18\x07 \x01(\x0b\x32\x1f.aptos.transaction.v1.Signature"\xda\x02\n\x08WriteSet\x12\x43\n\x0ewrite_set_type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.WriteSet.WriteSetType\x12@\n\x10script_write_set\x18\x02 \x01(\x0b\x32$.aptos.transaction.v1.ScriptWriteSetH\x00\x12@\n\x10\x64irect_write_set\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DirectWriteSetH\x00"x\n\x0cWriteSetType\x12\x1e\n\x1aWRITE_SET_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWRITE_SET_TYPE_SCRIPT_WRITE_SET\x10\x01\x12#\n\x1fWRITE_SET_TYPE_DIRECT_WRITE_SET\x10\x02\x42\x0b\n\twrite_set"Y\n\x0eScriptWriteSet\x12\x12\n\nexecute_as\x18\x01 \x01(\t\x12\x33\n\x06script\x18\x02 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayload"}\n\x0e\x44irectWriteSet\x12>\n\x10write_set_change\x18\x01 \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChange\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x89\x05\n\x0eWriteSetChange\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).aptos.transaction.v1.WriteSetChange.Type\x12;\n\rdelete_module\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.DeleteModuleH\x00\x12?\n\x0f\x64\x65lete_resource\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DeleteResourceH\x00\x12\x42\n\x11\x64\x65lete_table_item\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableItemH\x00\x12\x39\n\x0cwrite_module\x18\x05 \x01(\x0b\x32!.aptos.transaction.v1.WriteModuleH\x00\x12=\n\x0ewrite_resource\x18\x06 \x01(\x0b\x32#.aptos.transaction.v1.WriteResourceH\x00\x12@\n\x10write_table_item\x18\x07 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableItemH\x00"\xb5\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_DELETE_MODULE\x10\x01\x12\x18\n\x14TYPE_DELETE_RESOURCE\x10\x02\x12\x1a\n\x16TYPE_DELETE_TABLE_ITEM\x10\x03\x12\x15\n\x11TYPE_WRITE_MODULE\x10\x04\x12\x17\n\x13TYPE_WRITE_RESOURCE\x10\x05\x12\x19\n\x15TYPE_WRITE_TABLE_ITEM\x10\x06\x42\x08\n\x06\x63hange"k\n\x0c\x44\x65leteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x32\n\x06module\x18\x03 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId"~\n\x0e\x44\x65leteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t"{\n\x0f\x44\x65leteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x33\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableData"0\n\x0f\x44\x65leteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t"n\n\x0bWriteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x36\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"\x8b\x01\n\rWriteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\t"R\n\x0eWriteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x12\n\nvalue_type\x18\x04 \x01(\t"y\n\x0eWriteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x32\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableData"\xec\x04\n\x12TransactionPayload\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.aptos.transaction.v1.TransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00\x12=\n\x0escript_payload\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayloadH\x00\x12J\n\x15module_bundle_payload\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.ModuleBundlePayloadH\x00\x12\x42\n\x11write_set_payload\x18\x05 \x01(\x0b\x32%.aptos.transaction.v1.WriteSetPayloadH\x00\x12\x41\n\x10multisig_payload\x18\x06 \x01(\x0b\x32%.aptos.transaction.v1.MultisigPayloadH\x00"\xad\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x12\x17\n\x13TYPE_SCRIPT_PAYLOAD\x10\x02\x12\x1e\n\x1aTYPE_MODULE_BUNDLE_PAYLOAD\x10\x03\x12\x1a\n\x16TYPE_WRITE_SET_PAYLOAD\x10\x04\x12\x19\n\x15TYPE_MULTISIG_PAYLOAD\x10\x05\x42\t\n\x07payload"\xb9\x01\n\x14\x45ntryFunctionPayload\x12\x37\n\x08\x66unction\x18\x01 \x01(\x0b\x32%.aptos.transaction.v1.EntryFunctionId\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x1d\n\x15\x65ntry_function_id_str\x18\x04 \x01(\t"W\n\x12MoveScriptBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12/\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.MoveFunction"\x92\x01\n\rScriptPayload\x12\x36\n\x04\x63ode\x18\x01 \x01(\x0b\x32(.aptos.transaction.v1.MoveScriptBytecode\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t"\x97\x01\n\x0fMultisigPayload\x12\x18\n\x10multisig_address\x18\x01 \x01(\t\x12R\n\x13transaction_payload\x18\x02 \x01(\x0b\x32\x30.aptos.transaction.v1.MultisigTransactionPayloadH\x00\x88\x01\x01\x42\x16\n\x14_transaction_payload"\xf9\x01\n\x1aMultisigTransactionPayload\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.aptos.transaction.v1.MultisigTransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00"=\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x42\t\n\x07payload"P\n\x13ModuleBundlePayload\x12\x39\n\x07modules\x18\x01 \x03(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"U\n\x12MoveModuleBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12-\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32 .aptos.transaction.v1.MoveModule"\xd2\x01\n\nMoveModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x07\x66riends\x18\x03 \x03(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12=\n\x11\x65xposed_functions\x18\x04 \x03(\x0b\x32".aptos.transaction.v1.MoveFunction\x12\x31\n\x07structs\x18\x05 \x03(\x0b\x32 .aptos.transaction.v1.MoveStruct"\x92\x03\n\x0cMoveFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\nvisibility\x18\x02 \x01(\x0e\x32-.aptos.transaction.v1.MoveFunction.Visibility\x12\x10\n\x08is_entry\x18\x03 \x01(\x08\x12O\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x32.aptos.transaction.v1.MoveFunctionGenericTypeParam\x12.\n\x06params\x18\x05 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12.\n\x06return\x18\x06 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"n\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\x12\x15\n\x11VISIBILITY_FRIEND\x10\x03"\xe9\x01\n\nMoveStruct\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tis_native\x18\x02 \x01(\x08\x12\x34\n\tabilities\x18\x03 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12M\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x30.aptos.transaction.v1.MoveStructGenericTypeParam\x12\x35\n\x06\x66ields\x18\x05 \x03(\x0b\x32%.aptos.transaction.v1.MoveStructField"h\n\x1aMoveStructGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12\x12\n\nis_phantom\x18\x02 \x01(\x08"M\n\x0fMoveStructField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x04type\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType"V\n\x1cMoveFunctionGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility"\xf8\x02\n\x08MoveType\x12-\n\x04type\x18\x01 \x01(\x0e\x32\x1f.aptos.transaction.v1.MoveTypes\x12\x30\n\x06vector\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeH\x00\x12\x35\n\x06struct\x18\x04 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTagH\x00\x12"\n\x18generic_type_param_index\x18\x05 \x01(\rH\x00\x12\x41\n\treference\x18\x06 \x01(\x0b\x32,.aptos.transaction.v1.MoveType.ReferenceTypeH\x00\x12\x14\n\nunparsable\x18\x07 \x01(\tH\x00\x1aL\n\rReferenceType\x12\x0f\n\x07mutable\x18\x01 \x01(\x08\x12*\n\x02to\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeB\t\n\x07\x63ontent"D\n\x0fWriteSetPayload\x12\x31\n\twrite_set\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet"S\n\x0f\x45ntryFunctionId\x12\x32\n\x06module\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12\x0c\n\x04name\x18\x02 \x01(\t"-\n\x0cMoveModuleId\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t"{\n\rMoveStructTag\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06module\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12;\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"\x95\x04\n\tSignature\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.aptos.transaction.v1.Signature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12@\n\x0bmulti_agent\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.MultiAgentSignatureH\x00\x12<\n\tfee_payer\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.FeePayerSignatureH\x00\x12;\n\rsingle_sender\x18\x06 \x01(\x0b\x32".aptos.transaction.v1.SingleSenderH\x00"\x88\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x14\n\x10TYPE_MULTI_AGENT\x10\x03\x12\x12\n\x0eTYPE_FEE_PAYER\x10\x04\x12\x16\n\x12TYPE_SINGLE_SENDER\x10\x05\x42\x0b\n\tsignature"9\n\x10\x45\x64\x32\x35\x35\x31\x39Signature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"o\n\x15MultiEd25519Signature\x12\x13\n\x0bpublic_keys\x18\x01 \x03(\x0c\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\x11\n\tthreshold\x18\x03 \x01(\r\x12\x1a\n\x12public_key_indices\x18\x04 \x03(\r"\xb4\x01\n\x13MultiAgentSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature"\x8f\x02\n\x11\x46\x65\x65PayerSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12\x19\n\x11\x66\x65\x65_payer_address\x18\x04 \x01(\t\x12@\n\x10\x66\x65\x65_payer_signer\x18\x05 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xa3\x01\n\x0c\x41nyPublicKey\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnyPublicKey.Type\x12\x12\n\npublic_key\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\xa2\x01\n\x0c\x41nySignature\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnySignature.Type\x12\x11\n\tsignature\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\x83\x01\n\x12SingleKeySignature\x12\x36\n\npublic_key\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"X\n\x10IndexedSignature\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"\xa5\x01\n\x11MultiKeySignature\x12\x37\n\x0bpublic_keys\x18\x01 \x03(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12:\n\nsignatures\x18\x02 \x03(\x0b\x32&.aptos.transaction.v1.IndexedSignature\x12\x1b\n\x13signatures_required\x18\x03 \x01(\r"F\n\x0cSingleSender\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xde\x03\n\x10\x41\x63\x63ountSignature\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.AccountSignature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12H\n\x14single_key_signature\x18\x04 \x01(\x0b\x32(.aptos.transaction.v1.SingleKeySignatureH\x00\x12\x46\n\x13multi_key_signature\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.MultiKeySignatureH\x00"o\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x13\n\x0fTYPE_SINGLE_KEY\x10\x03\x12\x12\n\x0eTYPE_MULTI_KEY\x10\x04\x42\x0b\n\tsignature*\xea\x02\n\tMoveTypes\x12\x1a\n\x16MOVE_TYPES_UNSPECIFIED\x10\x00\x12\x13\n\x0fMOVE_TYPES_BOOL\x10\x01\x12\x11\n\rMOVE_TYPES_U8\x10\x02\x12\x12\n\x0eMOVE_TYPES_U16\x10\x0c\x12\x12\n\x0eMOVE_TYPES_U32\x10\r\x12\x12\n\x0eMOVE_TYPES_U64\x10\x03\x12\x13\n\x0fMOVE_TYPES_U128\x10\x04\x12\x13\n\x0fMOVE_TYPES_U256\x10\x0e\x12\x16\n\x12MOVE_TYPES_ADDRESS\x10\x05\x12\x15\n\x11MOVE_TYPES_SIGNER\x10\x06\x12\x15\n\x11MOVE_TYPES_VECTOR\x10\x07\x12\x15\n\x11MOVE_TYPES_STRUCT\x10\x08\x12!\n\x1dMOVE_TYPES_GENERIC_TYPE_PARAM\x10\t\x12\x18\n\x14MOVE_TYPES_REFERENCE\x10\n\x12\x19\n\x15MOVE_TYPES_UNPARSABLE\x10\x0b*\x87\x01\n\x0bMoveAbility\x12\x1c\n\x18MOVE_ABILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11MOVE_ABILITY_COPY\x10\x01\x12\x15\n\x11MOVE_ABILITY_DROP\x10\x02\x12\x16\n\x12MOVE_ABILITY_STORE\x10\x03\x12\x14\n\x10MOVE_ABILITY_KEY\x10\x04\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.transaction.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _BLOCK.fields_by_name["height"]._options = None + _BLOCK.fields_by_name["height"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["version"]._options = None + _TRANSACTION.fields_by_name["version"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["epoch"]._options = None + _TRANSACTION.fields_by_name["epoch"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["block_height"]._options = None + _TRANSACTION.fields_by_name["block_height"]._serialized_options = b"0\001" + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._options = None + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._serialized_options = b"0\001" + _EVENT.fields_by_name["sequence_number"]._options = None + _EVENT.fields_by_name["sequence_number"]._serialized_options = b"0\001" + _TRANSACTIONINFO.fields_by_name["gas_used"]._options = None + _TRANSACTIONINFO.fields_by_name["gas_used"]._serialized_options = b"0\001" + _EVENTKEY.fields_by_name["creation_number"]._options = None + _EVENTKEY.fields_by_name["creation_number"]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["sequence_number"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "sequence_number" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["max_gas_amount"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "max_gas_amount" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["gas_unit_price"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "gas_unit_price" + ]._serialized_options = b"0\001" + _globals["_MOVETYPES"]._serialized_start = 10262 + _globals["_MOVETYPES"]._serialized_end = 10624 + _globals["_MOVEABILITY"]._serialized_start = 10627 + _globals["_MOVEABILITY"]._serialized_end = 10762 + _globals["_BLOCK"]._serialized_start = 103 + _globals["_BLOCK"]._serialized_end = 257 + _globals["_TRANSACTION"]._serialized_start = 260 + _globals["_TRANSACTION"]._serialized_end = 976 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_start = 780 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_end = 964 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_start = 979 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_end = 1169 + _globals["_GENESISTRANSACTION"]._serialized_start = 1171 + _globals["_GENESISTRANSACTION"]._serialized_end = 1285 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_start = 1287 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_end = 1315 + _globals["_USERTRANSACTION"]._serialized_start = 1317 + _globals["_USERTRANSACTION"]._serialized_end = 1442 + _globals["_EVENT"]._serialized_start = 1445 + _globals["_EVENT"]._serialized_end = 1604 + _globals["_TRANSACTIONINFO"]._serialized_start = 1607 + _globals["_TRANSACTIONINFO"]._serialized_end = 1896 + _globals["_EVENTKEY"]._serialized_start = 1898 + _globals["_EVENTKEY"]._serialized_end = 1962 + _globals["_USERTRANSACTIONREQUEST"]._serialized_start = 1965 + _globals["_USERTRANSACTIONREQUEST"]._serialized_end = 2269 + _globals["_WRITESET"]._serialized_start = 2272 + _globals["_WRITESET"]._serialized_end = 2618 + _globals["_WRITESET_WRITESETTYPE"]._serialized_start = 2485 + _globals["_WRITESET_WRITESETTYPE"]._serialized_end = 2605 + _globals["_SCRIPTWRITESET"]._serialized_start = 2620 + _globals["_SCRIPTWRITESET"]._serialized_end = 2709 + _globals["_DIRECTWRITESET"]._serialized_start = 2711 + _globals["_DIRECTWRITESET"]._serialized_end = 2836 + _globals["_WRITESETCHANGE"]._serialized_start = 2839 + _globals["_WRITESETCHANGE"]._serialized_end = 3488 + _globals["_WRITESETCHANGE_TYPE"]._serialized_start = 3297 + _globals["_WRITESETCHANGE_TYPE"]._serialized_end = 3478 + _globals["_DELETEMODULE"]._serialized_start = 3490 + _globals["_DELETEMODULE"]._serialized_end = 3597 + _globals["_DELETERESOURCE"]._serialized_start = 3599 + _globals["_DELETERESOURCE"]._serialized_end = 3725 + _globals["_DELETETABLEITEM"]._serialized_start = 3727 + _globals["_DELETETABLEITEM"]._serialized_end = 3850 + _globals["_DELETETABLEDATA"]._serialized_start = 3852 + _globals["_DELETETABLEDATA"]._serialized_end = 3900 + _globals["_WRITEMODULE"]._serialized_start = 3902 + _globals["_WRITEMODULE"]._serialized_end = 4012 + _globals["_WRITERESOURCE"]._serialized_start = 4015 + _globals["_WRITERESOURCE"]._serialized_end = 4154 + _globals["_WRITETABLEDATA"]._serialized_start = 4156 + _globals["_WRITETABLEDATA"]._serialized_end = 4238 + _globals["_WRITETABLEITEM"]._serialized_start = 4240 + _globals["_WRITETABLEITEM"]._serialized_end = 4361 + _globals["_TRANSACTIONPAYLOAD"]._serialized_start = 4364 + _globals["_TRANSACTIONPAYLOAD"]._serialized_end = 4984 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4973 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_start = 4987 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_end = 5172 + _globals["_MOVESCRIPTBYTECODE"]._serialized_start = 5174 + _globals["_MOVESCRIPTBYTECODE"]._serialized_end = 5261 + _globals["_SCRIPTPAYLOAD"]._serialized_start = 5264 + _globals["_SCRIPTPAYLOAD"]._serialized_end = 5410 + _globals["_MULTISIGPAYLOAD"]._serialized_start = 5413 + _globals["_MULTISIGPAYLOAD"]._serialized_end = 5564 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_start = 5567 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_end = 5816 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4861 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_start = 5818 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_end = 5898 + _globals["_MOVEMODULEBYTECODE"]._serialized_start = 5900 + _globals["_MOVEMODULEBYTECODE"]._serialized_end = 5985 + _globals["_MOVEMODULE"]._serialized_start = 5988 + _globals["_MOVEMODULE"]._serialized_end = 6198 + _globals["_MOVEFUNCTION"]._serialized_start = 6201 + _globals["_MOVEFUNCTION"]._serialized_end = 6603 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_start = 6493 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_end = 6603 + _globals["_MOVESTRUCT"]._serialized_start = 6606 + _globals["_MOVESTRUCT"]._serialized_end = 6839 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_start = 6841 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_end = 6945 + _globals["_MOVESTRUCTFIELD"]._serialized_start = 6947 + _globals["_MOVESTRUCTFIELD"]._serialized_end = 7024 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_start = 7026 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_end = 7112 + _globals["_MOVETYPE"]._serialized_start = 7115 + _globals["_MOVETYPE"]._serialized_end = 7491 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_start = 7404 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_end = 7480 + _globals["_WRITESETPAYLOAD"]._serialized_start = 7493 + _globals["_WRITESETPAYLOAD"]._serialized_end = 7561 + _globals["_ENTRYFUNCTIONID"]._serialized_start = 7563 + _globals["_ENTRYFUNCTIONID"]._serialized_end = 7646 + _globals["_MOVEMODULEID"]._serialized_start = 7648 + _globals["_MOVEMODULEID"]._serialized_end = 7693 + _globals["_MOVESTRUCTTAG"]._serialized_start = 7695 + _globals["_MOVESTRUCTTAG"]._serialized_end = 7818 + _globals["_SIGNATURE"]._serialized_start = 7821 + _globals["_SIGNATURE"]._serialized_end = 8354 + _globals["_SIGNATURE_TYPE"]._serialized_start = 8205 + _globals["_SIGNATURE_TYPE"]._serialized_end = 8341 + _globals["_ED25519SIGNATURE"]._serialized_start = 8356 + _globals["_ED25519SIGNATURE"]._serialized_end = 8413 + _globals["_MULTIED25519SIGNATURE"]._serialized_start = 8415 + _globals["_MULTIED25519SIGNATURE"]._serialized_end = 8526 + _globals["_MULTIAGENTSIGNATURE"]._serialized_start = 8529 + _globals["_MULTIAGENTSIGNATURE"]._serialized_end = 8709 + _globals["_FEEPAYERSIGNATURE"]._serialized_start = 8712 + _globals["_FEEPAYERSIGNATURE"]._serialized_end = 8983 + _globals["_ANYPUBLICKEY"]._serialized_start = 8986 + _globals["_ANYPUBLICKEY"]._serialized_end = 9149 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_start = 9077 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_end = 9149 + _globals["_ANYSIGNATURE"]._serialized_start = 9152 + _globals["_ANYSIGNATURE"]._serialized_end = 9314 + _globals["_ANYSIGNATURE_TYPE"]._serialized_start = 9077 + _globals["_ANYSIGNATURE_TYPE"]._serialized_end = 9149 + _globals["_SINGLEKEYSIGNATURE"]._serialized_start = 9317 + _globals["_SINGLEKEYSIGNATURE"]._serialized_end = 9448 + _globals["_INDEXEDSIGNATURE"]._serialized_start = 9450 + _globals["_INDEXEDSIGNATURE"]._serialized_end = 9538 + _globals["_MULTIKEYSIGNATURE"]._serialized_start = 9541 + _globals["_MULTIKEYSIGNATURE"]._serialized_end = 9706 + _globals["_SINGLESENDER"]._serialized_start = 9708 + _globals["_SINGLESENDER"]._serialized_end = 9778 + _globals["_ACCOUNTSIGNATURE"]._serialized_start = 9781 + _globals["_ACCOUNTSIGNATURE"]._serialized_end = 10259 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_start = 10135 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_end = 10246 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi new file mode 100644 index 0000000000000..82cc1f753ca1d --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi @@ -0,0 +1,1141 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.util.timestamp import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class MoveTypes(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_TYPES_UNSPECIFIED: _ClassVar[MoveTypes] + MOVE_TYPES_BOOL: _ClassVar[MoveTypes] + MOVE_TYPES_U8: _ClassVar[MoveTypes] + MOVE_TYPES_U16: _ClassVar[MoveTypes] + MOVE_TYPES_U32: _ClassVar[MoveTypes] + MOVE_TYPES_U64: _ClassVar[MoveTypes] + MOVE_TYPES_U128: _ClassVar[MoveTypes] + MOVE_TYPES_U256: _ClassVar[MoveTypes] + MOVE_TYPES_ADDRESS: _ClassVar[MoveTypes] + MOVE_TYPES_SIGNER: _ClassVar[MoveTypes] + MOVE_TYPES_VECTOR: _ClassVar[MoveTypes] + MOVE_TYPES_STRUCT: _ClassVar[MoveTypes] + MOVE_TYPES_GENERIC_TYPE_PARAM: _ClassVar[MoveTypes] + MOVE_TYPES_REFERENCE: _ClassVar[MoveTypes] + MOVE_TYPES_UNPARSABLE: _ClassVar[MoveTypes] + +class MoveAbility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_ABILITY_UNSPECIFIED: _ClassVar[MoveAbility] + MOVE_ABILITY_COPY: _ClassVar[MoveAbility] + MOVE_ABILITY_DROP: _ClassVar[MoveAbility] + MOVE_ABILITY_STORE: _ClassVar[MoveAbility] + MOVE_ABILITY_KEY: _ClassVar[MoveAbility] + +MOVE_TYPES_UNSPECIFIED: MoveTypes +MOVE_TYPES_BOOL: MoveTypes +MOVE_TYPES_U8: MoveTypes +MOVE_TYPES_U16: MoveTypes +MOVE_TYPES_U32: MoveTypes +MOVE_TYPES_U64: MoveTypes +MOVE_TYPES_U128: MoveTypes +MOVE_TYPES_U256: MoveTypes +MOVE_TYPES_ADDRESS: MoveTypes +MOVE_TYPES_SIGNER: MoveTypes +MOVE_TYPES_VECTOR: MoveTypes +MOVE_TYPES_STRUCT: MoveTypes +MOVE_TYPES_GENERIC_TYPE_PARAM: MoveTypes +MOVE_TYPES_REFERENCE: MoveTypes +MOVE_TYPES_UNPARSABLE: MoveTypes +MOVE_ABILITY_UNSPECIFIED: MoveAbility +MOVE_ABILITY_COPY: MoveAbility +MOVE_ABILITY_DROP: MoveAbility +MOVE_ABILITY_STORE: MoveAbility +MOVE_ABILITY_KEY: MoveAbility + +class Block(_message.Message): + __slots__ = ["timestamp", "height", "transactions", "chain_id"] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + height: int + transactions: _containers.RepeatedCompositeFieldContainer[Transaction] + chain_id: int + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + height: _Optional[int] = ..., + transactions: _Optional[_Iterable[_Union[Transaction, _Mapping]]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... + +class Transaction(_message.Message): + __slots__ = [ + "timestamp", + "version", + "info", + "epoch", + "block_height", + "type", + "block_metadata", + "genesis", + "state_checkpoint", + "user", + ] + + class TransactionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TRANSACTION_TYPE_UNSPECIFIED: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_GENESIS: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_BLOCK_METADATA: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_STATE_CHECKPOINT: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_USER: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_UNSPECIFIED: Transaction.TransactionType + TRANSACTION_TYPE_GENESIS: Transaction.TransactionType + TRANSACTION_TYPE_BLOCK_METADATA: Transaction.TransactionType + TRANSACTION_TYPE_STATE_CHECKPOINT: Transaction.TransactionType + TRANSACTION_TYPE_USER: Transaction.TransactionType + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + INFO_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + BLOCK_METADATA_FIELD_NUMBER: _ClassVar[int] + GENESIS_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + version: int + info: TransactionInfo + epoch: int + block_height: int + type: Transaction.TransactionType + block_metadata: BlockMetadataTransaction + genesis: GenesisTransaction + state_checkpoint: StateCheckpointTransaction + user: UserTransaction + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + version: _Optional[int] = ..., + info: _Optional[_Union[TransactionInfo, _Mapping]] = ..., + epoch: _Optional[int] = ..., + block_height: _Optional[int] = ..., + type: _Optional[_Union[Transaction.TransactionType, str]] = ..., + block_metadata: _Optional[_Union[BlockMetadataTransaction, _Mapping]] = ..., + genesis: _Optional[_Union[GenesisTransaction, _Mapping]] = ..., + state_checkpoint: _Optional[_Union[StateCheckpointTransaction, _Mapping]] = ..., + user: _Optional[_Union[UserTransaction, _Mapping]] = ..., + ) -> None: ... + +class BlockMetadataTransaction(_message.Message): + __slots__ = [ + "id", + "round", + "events", + "previous_block_votes_bitvec", + "proposer", + "failed_proposer_indices", + ] + ID_FIELD_NUMBER: _ClassVar[int] + ROUND_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + PREVIOUS_BLOCK_VOTES_BITVEC_FIELD_NUMBER: _ClassVar[int] + PROPOSER_FIELD_NUMBER: _ClassVar[int] + FAILED_PROPOSER_INDICES_FIELD_NUMBER: _ClassVar[int] + id: str + round: int + events: _containers.RepeatedCompositeFieldContainer[Event] + previous_block_votes_bitvec: bytes + proposer: str + failed_proposer_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + id: _Optional[str] = ..., + round: _Optional[int] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + previous_block_votes_bitvec: _Optional[bytes] = ..., + proposer: _Optional[str] = ..., + failed_proposer_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class GenesisTransaction(_message.Message): + __slots__ = ["payload", "events"] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + payload: WriteSet + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + payload: _Optional[_Union[WriteSet, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class StateCheckpointTransaction(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class UserTransaction(_message.Message): + __slots__ = ["request", "events"] + REQUEST_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + request: UserTransactionRequest + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + request: _Optional[_Union[UserTransactionRequest, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class Event(_message.Message): + __slots__ = ["key", "sequence_number", "type", "type_str", "data"] + KEY_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + key: EventKey + sequence_number: int + type: MoveType + type_str: str + data: str + def __init__( + self, + key: _Optional[_Union[EventKey, _Mapping]] = ..., + sequence_number: _Optional[int] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class TransactionInfo(_message.Message): + __slots__ = [ + "hash", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "changes", + ] + HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + CHANGES_FIELD_NUMBER: _ClassVar[int] + hash: bytes + state_change_hash: bytes + event_root_hash: bytes + state_checkpoint_hash: bytes + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: bytes + changes: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + def __init__( + self, + hash: _Optional[bytes] = ..., + state_change_hash: _Optional[bytes] = ..., + event_root_hash: _Optional[bytes] = ..., + state_checkpoint_hash: _Optional[bytes] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[bytes] = ..., + changes: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + ) -> None: ... + +class EventKey(_message.Message): + __slots__ = ["creation_number", "account_address"] + CREATION_NUMBER_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_ADDRESS_FIELD_NUMBER: _ClassVar[int] + creation_number: int + account_address: str + def __init__( + self, + creation_number: _Optional[int] = ..., + account_address: _Optional[str] = ..., + ) -> None: ... + +class UserTransactionRequest(_message.Message): + __slots__ = [ + "sender", + "sequence_number", + "max_gas_amount", + "gas_unit_price", + "expiration_timestamp_secs", + "payload", + "signature", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + MAX_GAS_AMOUNT_FIELD_NUMBER: _ClassVar[int] + GAS_UNIT_PRICE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_TIMESTAMP_SECS_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + sender: str + sequence_number: int + max_gas_amount: int + gas_unit_price: int + expiration_timestamp_secs: _timestamp_pb2.Timestamp + payload: TransactionPayload + signature: Signature + def __init__( + self, + sender: _Optional[str] = ..., + sequence_number: _Optional[int] = ..., + max_gas_amount: _Optional[int] = ..., + gas_unit_price: _Optional[int] = ..., + expiration_timestamp_secs: _Optional[ + _Union[_timestamp_pb2.Timestamp, _Mapping] + ] = ..., + payload: _Optional[_Union[TransactionPayload, _Mapping]] = ..., + signature: _Optional[_Union[Signature, _Mapping]] = ..., + ) -> None: ... + +class WriteSet(_message.Message): + __slots__ = ["write_set_type", "script_write_set", "direct_write_set"] + + class WriteSetType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + WRITE_SET_TYPE_UNSPECIFIED: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_SCRIPT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_DIRECT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_UNSPECIFIED: WriteSet.WriteSetType + WRITE_SET_TYPE_SCRIPT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_DIRECT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_FIELD_NUMBER: _ClassVar[int] + SCRIPT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + DIRECT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set_type: WriteSet.WriteSetType + script_write_set: ScriptWriteSet + direct_write_set: DirectWriteSet + def __init__( + self, + write_set_type: _Optional[_Union[WriteSet.WriteSetType, str]] = ..., + script_write_set: _Optional[_Union[ScriptWriteSet, _Mapping]] = ..., + direct_write_set: _Optional[_Union[DirectWriteSet, _Mapping]] = ..., + ) -> None: ... + +class ScriptWriteSet(_message.Message): + __slots__ = ["execute_as", "script"] + EXECUTE_AS_FIELD_NUMBER: _ClassVar[int] + SCRIPT_FIELD_NUMBER: _ClassVar[int] + execute_as: str + script: ScriptPayload + def __init__( + self, + execute_as: _Optional[str] = ..., + script: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + ) -> None: ... + +class DirectWriteSet(_message.Message): + __slots__ = ["write_set_change", "events"] + WRITE_SET_CHANGE_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + write_set_change: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + write_set_change: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class WriteSetChange(_message.Message): + __slots__ = [ + "type", + "delete_module", + "delete_resource", + "delete_table_item", + "write_module", + "write_resource", + "write_table_item", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_UNSPECIFIED: WriteSetChange.Type + TYPE_DELETE_MODULE: WriteSetChange.Type + TYPE_DELETE_RESOURCE: WriteSetChange.Type + TYPE_DELETE_TABLE_ITEM: WriteSetChange.Type + TYPE_WRITE_MODULE: WriteSetChange.Type + TYPE_WRITE_RESOURCE: WriteSetChange.Type + TYPE_WRITE_TABLE_ITEM: WriteSetChange.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + DELETE_MODULE_FIELD_NUMBER: _ClassVar[int] + DELETE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + DELETE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + WRITE_MODULE_FIELD_NUMBER: _ClassVar[int] + WRITE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + WRITE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + type: WriteSetChange.Type + delete_module: DeleteModule + delete_resource: DeleteResource + delete_table_item: DeleteTableItem + write_module: WriteModule + write_resource: WriteResource + write_table_item: WriteTableItem + def __init__( + self, + type: _Optional[_Union[WriteSetChange.Type, str]] = ..., + delete_module: _Optional[_Union[DeleteModule, _Mapping]] = ..., + delete_resource: _Optional[_Union[DeleteResource, _Mapping]] = ..., + delete_table_item: _Optional[_Union[DeleteTableItem, _Mapping]] = ..., + write_module: _Optional[_Union[WriteModule, _Mapping]] = ..., + write_resource: _Optional[_Union[WriteResource, _Mapping]] = ..., + write_table_item: _Optional[_Union[WriteTableItem, _Mapping]] = ..., + ) -> None: ... + +class DeleteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "module"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + module: MoveModuleId + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + ) -> None: ... + +class DeleteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + ) -> None: ... + +class DeleteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: DeleteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[DeleteTableData, _Mapping]] = ..., + ) -> None: ... + +class DeleteTableData(_message.Message): + __slots__ = ["key", "key_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + def __init__( + self, key: _Optional[str] = ..., key_type: _Optional[str] = ... + ) -> None: ... + +class WriteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + data: MoveModuleBytecode + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + data: _Optional[_Union[MoveModuleBytecode, _Mapping]] = ..., + ) -> None: ... + +class WriteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + data: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class WriteTableData(_message.Message): + __slots__ = ["key", "key_type", "value", "value_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + value: str + value_type: str + def __init__( + self, + key: _Optional[str] = ..., + key_type: _Optional[str] = ..., + value: _Optional[str] = ..., + value_type: _Optional[str] = ..., + ) -> None: ... + +class WriteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: WriteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[WriteTableData, _Mapping]] = ..., + ) -> None: ... + +class TransactionPayload(_message.Message): + __slots__ = [ + "type", + "entry_function_payload", + "script_payload", + "module_bundle_payload", + "write_set_payload", + "multisig_payload", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[TransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_SCRIPT_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MODULE_BUNDLE_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_WRITE_SET_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MULTISIG_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_UNSPECIFIED: TransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: TransactionPayload.Type + TYPE_SCRIPT_PAYLOAD: TransactionPayload.Type + TYPE_MODULE_BUNDLE_PAYLOAD: TransactionPayload.Type + TYPE_WRITE_SET_PAYLOAD: TransactionPayload.Type + TYPE_MULTISIG_PAYLOAD: TransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SCRIPT_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MODULE_BUNDLE_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + WRITE_SET_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MULTISIG_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: TransactionPayload.Type + entry_function_payload: EntryFunctionPayload + script_payload: ScriptPayload + module_bundle_payload: ModuleBundlePayload + write_set_payload: WriteSetPayload + multisig_payload: MultisigPayload + def __init__( + self, + type: _Optional[_Union[TransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + script_payload: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + module_bundle_payload: _Optional[_Union[ModuleBundlePayload, _Mapping]] = ..., + write_set_payload: _Optional[_Union[WriteSetPayload, _Mapping]] = ..., + multisig_payload: _Optional[_Union[MultisigPayload, _Mapping]] = ..., + ) -> None: ... + +class EntryFunctionPayload(_message.Message): + __slots__ = ["function", "type_arguments", "arguments", "entry_function_id_str"] + FUNCTION_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_ID_STR_FIELD_NUMBER: _ClassVar[int] + function: EntryFunctionId + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + entry_function_id_str: str + def __init__( + self, + function: _Optional[_Union[EntryFunctionId, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + entry_function_id_str: _Optional[str] = ..., + ) -> None: ... + +class MoveScriptBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveFunction + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveFunction, _Mapping]] = ..., + ) -> None: ... + +class ScriptPayload(_message.Message): + __slots__ = ["code", "type_arguments", "arguments"] + CODE_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + code: MoveScriptBytecode + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + def __init__( + self, + code: _Optional[_Union[MoveScriptBytecode, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + ) -> None: ... + +class MultisigPayload(_message.Message): + __slots__ = ["multisig_address", "transaction_payload"] + MULTISIG_ADDRESS_FIELD_NUMBER: _ClassVar[int] + TRANSACTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + multisig_address: str + transaction_payload: MultisigTransactionPayload + def __init__( + self, + multisig_address: _Optional[str] = ..., + transaction_payload: _Optional[ + _Union[MultisigTransactionPayload, _Mapping] + ] = ..., + ) -> None: ... + +class MultisigTransactionPayload(_message.Message): + __slots__ = ["type", "entry_function_payload"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[MultisigTransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[MultisigTransactionPayload.Type] + TYPE_UNSPECIFIED: MultisigTransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: MultisigTransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: MultisigTransactionPayload.Type + entry_function_payload: EntryFunctionPayload + def __init__( + self, + type: _Optional[_Union[MultisigTransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + ) -> None: ... + +class ModuleBundlePayload(_message.Message): + __slots__ = ["modules"] + MODULES_FIELD_NUMBER: _ClassVar[int] + modules: _containers.RepeatedCompositeFieldContainer[MoveModuleBytecode] + def __init__( + self, modules: _Optional[_Iterable[_Union[MoveModuleBytecode, _Mapping]]] = ... + ) -> None: ... + +class MoveModuleBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveModule + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveModule, _Mapping]] = ..., + ) -> None: ... + +class MoveModule(_message.Message): + __slots__ = ["address", "name", "friends", "exposed_functions", "structs"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + FRIENDS_FIELD_NUMBER: _ClassVar[int] + EXPOSED_FUNCTIONS_FIELD_NUMBER: _ClassVar[int] + STRUCTS_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + friends: _containers.RepeatedCompositeFieldContainer[MoveModuleId] + exposed_functions: _containers.RepeatedCompositeFieldContainer[MoveFunction] + structs: _containers.RepeatedCompositeFieldContainer[MoveStruct] + def __init__( + self, + address: _Optional[str] = ..., + name: _Optional[str] = ..., + friends: _Optional[_Iterable[_Union[MoveModuleId, _Mapping]]] = ..., + exposed_functions: _Optional[_Iterable[_Union[MoveFunction, _Mapping]]] = ..., + structs: _Optional[_Iterable[_Union[MoveStruct, _Mapping]]] = ..., + ) -> None: ... + +class MoveFunction(_message.Message): + __slots__ = ["name", "visibility", "is_entry", "generic_type_params", "params"] + + class Visibility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + VISIBILITY_UNSPECIFIED: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PRIVATE: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PUBLIC: _ClassVar[MoveFunction.Visibility] + VISIBILITY_FRIEND: _ClassVar[MoveFunction.Visibility] + VISIBILITY_UNSPECIFIED: MoveFunction.Visibility + VISIBILITY_PRIVATE: MoveFunction.Visibility + VISIBILITY_PUBLIC: MoveFunction.Visibility + VISIBILITY_FRIEND: MoveFunction.Visibility + NAME_FIELD_NUMBER: _ClassVar[int] + VISIBILITY_FIELD_NUMBER: _ClassVar[int] + IS_ENTRY_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + PARAMS_FIELD_NUMBER: _ClassVar[int] + RETURN_FIELD_NUMBER: _ClassVar[int] + name: str + visibility: MoveFunction.Visibility + is_entry: bool + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveFunctionGenericTypeParam + ] + params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + name: _Optional[str] = ..., + visibility: _Optional[_Union[MoveFunction.Visibility, str]] = ..., + is_entry: bool = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveFunctionGenericTypeParam, _Mapping]] + ] = ..., + params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + **kwargs + ) -> None: ... + +class MoveStruct(_message.Message): + __slots__ = ["name", "is_native", "abilities", "generic_type_params", "fields"] + NAME_FIELD_NUMBER: _ClassVar[int] + IS_NATIVE_FIELD_NUMBER: _ClassVar[int] + ABILITIES_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + FIELDS_FIELD_NUMBER: _ClassVar[int] + name: str + is_native: bool + abilities: _containers.RepeatedScalarFieldContainer[MoveAbility] + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveStructGenericTypeParam + ] + fields: _containers.RepeatedCompositeFieldContainer[MoveStructField] + def __init__( + self, + name: _Optional[str] = ..., + is_native: bool = ..., + abilities: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveStructGenericTypeParam, _Mapping]] + ] = ..., + fields: _Optional[_Iterable[_Union[MoveStructField, _Mapping]]] = ..., + ) -> None: ... + +class MoveStructGenericTypeParam(_message.Message): + __slots__ = ["constraints", "is_phantom"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + IS_PHANTOM_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + is_phantom: bool + def __init__( + self, + constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + is_phantom: bool = ..., + ) -> None: ... + +class MoveStructField(_message.Message): + __slots__ = ["name", "type"] + NAME_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + type: MoveType + def __init__( + self, + name: _Optional[str] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + ) -> None: ... + +class MoveFunctionGenericTypeParam(_message.Message): + __slots__ = ["constraints"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + def __init__( + self, constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ... + ) -> None: ... + +class MoveType(_message.Message): + __slots__ = [ + "type", + "vector", + "struct", + "generic_type_param_index", + "reference", + "unparsable", + ] + + class ReferenceType(_message.Message): + __slots__ = ["mutable", "to"] + MUTABLE_FIELD_NUMBER: _ClassVar[int] + TO_FIELD_NUMBER: _ClassVar[int] + mutable: bool + to: MoveType + def __init__( + self, mutable: bool = ..., to: _Optional[_Union[MoveType, _Mapping]] = ... + ) -> None: ... + TYPE_FIELD_NUMBER: _ClassVar[int] + VECTOR_FIELD_NUMBER: _ClassVar[int] + STRUCT_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAM_INDEX_FIELD_NUMBER: _ClassVar[int] + REFERENCE_FIELD_NUMBER: _ClassVar[int] + UNPARSABLE_FIELD_NUMBER: _ClassVar[int] + type: MoveTypes + vector: MoveType + struct: MoveStructTag + generic_type_param_index: int + reference: MoveType.ReferenceType + unparsable: str + def __init__( + self, + type: _Optional[_Union[MoveTypes, str]] = ..., + vector: _Optional[_Union[MoveType, _Mapping]] = ..., + struct: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + generic_type_param_index: _Optional[int] = ..., + reference: _Optional[_Union[MoveType.ReferenceType, _Mapping]] = ..., + unparsable: _Optional[str] = ..., + ) -> None: ... + +class WriteSetPayload(_message.Message): + __slots__ = ["write_set"] + WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set: WriteSet + def __init__( + self, write_set: _Optional[_Union[WriteSet, _Mapping]] = ... + ) -> None: ... + +class EntryFunctionId(_message.Message): + __slots__ = ["module", "name"] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + module: MoveModuleId + name: str + def __init__( + self, + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + name: _Optional[str] = ..., + ) -> None: ... + +class MoveModuleId(_message.Message): + __slots__ = ["address", "name"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + def __init__( + self, address: _Optional[str] = ..., name: _Optional[str] = ... + ) -> None: ... + +class MoveStructTag(_message.Message): + __slots__ = ["address", "module", "name", "generic_type_params"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + address: str + module: str + name: str + generic_type_params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + address: _Optional[str] = ..., + module: _Optional[str] = ..., + name: _Optional[str] = ..., + generic_type_params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + ) -> None: ... + +class Signature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "multi_agent", + "fee_payer", + "single_sender", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[Signature.Type] + TYPE_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_AGENT: _ClassVar[Signature.Type] + TYPE_FEE_PAYER: _ClassVar[Signature.Type] + TYPE_SINGLE_SENDER: _ClassVar[Signature.Type] + TYPE_UNSPECIFIED: Signature.Type + TYPE_ED25519: Signature.Type + TYPE_MULTI_ED25519: Signature.Type + TYPE_MULTI_AGENT: Signature.Type + TYPE_FEE_PAYER: Signature.Type + TYPE_SINGLE_SENDER: Signature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_AGENT_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_FIELD_NUMBER: _ClassVar[int] + SINGLE_SENDER_FIELD_NUMBER: _ClassVar[int] + type: Signature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + multi_agent: MultiAgentSignature + fee_payer: FeePayerSignature + single_sender: SingleSender + def __init__( + self, + type: _Optional[_Union[Signature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + multi_agent: _Optional[_Union[MultiAgentSignature, _Mapping]] = ..., + fee_payer: _Optional[_Union[FeePayerSignature, _Mapping]] = ..., + single_sender: _Optional[_Union[SingleSender, _Mapping]] = ..., + ) -> None: ... + +class Ed25519Signature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: bytes + signature: bytes + def __init__( + self, public_key: _Optional[bytes] = ..., signature: _Optional[bytes] = ... + ) -> None: ... + +class MultiEd25519Signature(_message.Message): + __slots__ = ["public_keys", "signatures", "threshold", "public_key_indices"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + THRESHOLD_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_INDICES_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedScalarFieldContainer[bytes] + signatures: _containers.RepeatedScalarFieldContainer[bytes] + threshold: int + public_key_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + public_keys: _Optional[_Iterable[bytes]] = ..., + signatures: _Optional[_Iterable[bytes]] = ..., + threshold: _Optional[int] = ..., + public_key_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class MultiAgentSignature(_message.Message): + __slots__ = ["sender", "secondary_signer_addresses", "secondary_signers"] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + ) -> None: ... + +class FeePayerSignature(_message.Message): + __slots__ = [ + "sender", + "secondary_signer_addresses", + "secondary_signers", + "fee_payer_address", + "fee_payer_signer", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_ADDRESS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_SIGNER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + fee_payer_address: str + fee_payer_signer: AccountSignature + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + fee_payer_address: _Optional[str] = ..., + fee_payer_signer: _Optional[_Union[AccountSignature, _Mapping]] = ..., + ) -> None: ... + +class AnyPublicKey(_message.Message): + __slots__ = ["type", "public_key"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnyPublicKey.Type] + TYPE_ED25519: _ClassVar[AnyPublicKey.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnyPublicKey.Type] + TYPE_UNSPECIFIED: AnyPublicKey.Type + TYPE_ED25519: AnyPublicKey.Type + TYPE_SECP256K1_ECDSA: AnyPublicKey.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + type: AnyPublicKey.Type + public_key: bytes + def __init__( + self, + type: _Optional[_Union[AnyPublicKey.Type, str]] = ..., + public_key: _Optional[bytes] = ..., + ) -> None: ... + +class AnySignature(_message.Message): + __slots__ = ["type", "signature"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnySignature.Type] + TYPE_ED25519: _ClassVar[AnySignature.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnySignature.Type] + TYPE_UNSPECIFIED: AnySignature.Type + TYPE_ED25519: AnySignature.Type + TYPE_SECP256K1_ECDSA: AnySignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AnySignature.Type + signature: bytes + def __init__( + self, + type: _Optional[_Union[AnySignature.Type, str]] = ..., + signature: _Optional[bytes] = ..., + ) -> None: ... + +class SingleKeySignature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: AnyPublicKey + signature: AnySignature + def __init__( + self, + public_key: _Optional[_Union[AnyPublicKey, _Mapping]] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class IndexedSignature(_message.Message): + __slots__ = ["index", "signature"] + INDEX_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + index: int + signature: AnySignature + def __init__( + self, + index: _Optional[int] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class MultiKeySignature(_message.Message): + __slots__ = ["public_keys", "signatures", "signatures_required"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_REQUIRED_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedCompositeFieldContainer[AnyPublicKey] + signatures: _containers.RepeatedCompositeFieldContainer[IndexedSignature] + signatures_required: int + def __init__( + self, + public_keys: _Optional[_Iterable[_Union[AnyPublicKey, _Mapping]]] = ..., + signatures: _Optional[_Iterable[_Union[IndexedSignature, _Mapping]]] = ..., + signatures_required: _Optional[int] = ..., + ) -> None: ... + +class SingleSender(_message.Message): + __slots__ = ["sender"] + SENDER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + def __init__( + self, sender: _Optional[_Union[AccountSignature, _Mapping]] = ... + ) -> None: ... + +class AccountSignature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "single_key_signature", + "multi_key_signature", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AccountSignature.Type] + TYPE_ED25519: _ClassVar[AccountSignature.Type] + TYPE_MULTI_ED25519: _ClassVar[AccountSignature.Type] + TYPE_SINGLE_KEY: _ClassVar[AccountSignature.Type] + TYPE_MULTI_KEY: _ClassVar[AccountSignature.Type] + TYPE_UNSPECIFIED: AccountSignature.Type + TYPE_ED25519: AccountSignature.Type + TYPE_MULTI_ED25519: AccountSignature.Type + TYPE_SINGLE_KEY: AccountSignature.Type + TYPE_MULTI_KEY: AccountSignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + SINGLE_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + MULTI_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AccountSignature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + single_key_signature: SingleKeySignature + multi_key_signature: MultiKeySignature + def __init__( + self, + type: _Optional[_Union[AccountSignature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + single_key_signature: _Optional[_Union[SingleKeySignature, _Mapping]] = ..., + multi_key_signature: _Optional[_Union[MultiKeySignature, _Mapping]] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py new file mode 100644 index 0000000000000..8a9393943bdf4 --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py new file mode 100644 index 0000000000000..fd6c9d3812bdd --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/util/timestamp/timestamp.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n$aptos/util/timestamp/timestamp.proto\x12\x14\x61ptos.util.timestamp"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.util.timestamp.timestamp_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TIMESTAMP"]._serialized_start = 62 + _globals["_TIMESTAMP"]._serialized_end = 105 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi new file mode 100644 index 0000000000000..dd64a5c7fd359 --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi @@ -0,0 +1,17 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Timestamp(_message.Message): + __slots__ = ["seconds", "nanos"] + SECONDS_FIELD_NUMBER: _ClassVar[int] + NANOS_FIELD_NUMBER: _ClassVar[int] + seconds: int + nanos: int + def __init__( + self, seconds: _Optional[int] = ..., nanos: _Optional[int] = ... + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py new file mode 100644 index 0000000000000..8a9393943bdf4 --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/generate.sh b/protos/python/generate.sh new file mode 100755 index 0000000000000..666eedf77c8d3 --- /dev/null +++ b/protos/python/generate.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# TODO: Use the buf toolchain for this one day. + +# Exit if VIRTUAL_ENV is not set. +if [ -z "$VIRTUAL_ENV" ]; then + echo "This script must be run from inside the virtual environment, this this: poetry run poe generate" + exit 1 +fi + +echo + +export PYTHONWARNINGS="ignore" + +PROTO_DIR=../proto +WORKING_DIR=`mktemp -d` +OUT_DIR=./aptos_protos + +# Save __init__.py +mv $OUT_DIR/__init__.py $WORKING_DIR/__init__.py + +# Delete the old generated files. +rm -rf $OUT_DIR + +# Create the output directory. +mkdir -p $OUT_DIR + +# Generate the protos to a temporary directory. +python -m grpc_tools.protoc \ + --proto_path $PROTO_DIR \ + --python_out $OUT_DIR \ + --pyi_out $OUT_DIR \ + --grpc_python_out $OUT_DIR \ + $PROTO_DIR/aptos/bigquery_schema/v1/transaction.proto \ + $PROTO_DIR/aptos/indexer/v1/raw_data.proto \ + $PROTO_DIR/aptos/internal/fullnode/v1/fullnode_data.proto \ + $PROTO_DIR/aptos/transaction/v1/transaction.proto \ + $PROTO_DIR/aptos/util/timestamp/timestamp.proto + +# Restore __init__.py +mv $WORKING_DIR/__init__.py $OUT_DIR/__init__.py + +# Format code. +isort $OUT_DIR +black $OUT_DIR + +echo +echo "Protos generated to $OUT_DIR 🥳" + diff --git a/protos/python/poetry.lock b/protos/python/poetry.lock new file mode 100644 index 0000000000000..46468939085fc --- /dev/null +++ b/protos/python/poetry.lock @@ -0,0 +1,519 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + +[[package]] +name = "black" +version = "23.10.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, + {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, + {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, + {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, + {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, + {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, + {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, + {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, + {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, + {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, + {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "grpcio" +version = "1.59.0" +description = "HTTP/2-based RPC framework" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:225e5fa61c35eeaebb4e7491cd2d768cd8eb6ed00f2664fa83a58f29418b39fd"}, + {file = "grpcio-1.59.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b95ec8ecc4f703f5caaa8d96e93e40c7f589bad299a2617bdb8becbcce525539"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:1a839ba86764cc48226f50b924216000c79779c563a301586a107bda9cbe9dcf"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6cfe44a5d7c7d5f1017a7da1c8160304091ca5dc64a0f85bca0d63008c3137a"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0fcf53df684fcc0154b1e61f6b4a8c4cf5f49d98a63511e3f30966feff39cd0"}, + {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa66cac32861500f280bb60fe7d5b3e22d68c51e18e65367e38f8669b78cea3b"}, + {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8cd2d38c2d52f607d75a74143113174c36d8a416d9472415eab834f837580cf7"}, + {file = "grpcio-1.59.0-cp310-cp310-win32.whl", hash = "sha256:228b91ce454876d7eed74041aff24a8f04c0306b7250a2da99d35dd25e2a1211"}, + {file = "grpcio-1.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:ca87ee6183421b7cea3544190061f6c1c3dfc959e0b57a5286b108511fd34ff4"}, + {file = "grpcio-1.59.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:c173a87d622ea074ce79be33b952f0b424fa92182063c3bda8625c11d3585d09"}, + {file = "grpcio-1.59.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:ec78aebb9b6771d6a1de7b6ca2f779a2f6113b9108d486e904bde323d51f5589"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:0b84445fa94d59e6806c10266b977f92fa997db3585f125d6b751af02ff8b9fe"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c251d22de8f9f5cca9ee47e4bade7c5c853e6e40743f47f5cc02288ee7a87252"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:956f0b7cb465a65de1bd90d5a7475b4dc55089b25042fe0f6c870707e9aabb1d"}, + {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:38da5310ef84e16d638ad89550b5b9424df508fd5c7b968b90eb9629ca9be4b9"}, + {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:63982150a7d598281fa1d7ffead6096e543ff8be189d3235dd2b5604f2c553e5"}, + {file = "grpcio-1.59.0-cp311-cp311-win32.whl", hash = "sha256:50eff97397e29eeee5df106ea1afce3ee134d567aa2c8e04fabab05c79d791a7"}, + {file = "grpcio-1.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f03bd714f987d48ae57fe092cf81960ae36da4e520e729392a59a75cda4f29"}, + {file = "grpcio-1.59.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f1feb034321ae2f718172d86b8276c03599846dc7bb1792ae370af02718f91c5"}, + {file = "grpcio-1.59.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d09bd2a4e9f5a44d36bb8684f284835c14d30c22d8ec92ce796655af12163588"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:2f120d27051e4c59db2f267b71b833796770d3ea36ca712befa8c5fff5da6ebd"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0ca727a173ee093f49ead932c051af463258b4b493b956a2c099696f38aa66"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5711c51e204dc52065f4a3327dca46e69636a0b76d3e98c2c28c4ccef9b04c52"}, + {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d74f7d2d7c242a6af9d4d069552ec3669965b74fed6b92946e0e13b4168374f9"}, + {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3859917de234a0a2a52132489c4425a73669de9c458b01c9a83687f1f31b5b10"}, + {file = "grpcio-1.59.0-cp312-cp312-win32.whl", hash = "sha256:de2599985b7c1b4ce7526e15c969d66b93687571aa008ca749d6235d056b7205"}, + {file = "grpcio-1.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:598f3530231cf10ae03f4ab92d48c3be1fee0c52213a1d5958df1a90957e6a88"}, + {file = "grpcio-1.59.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b34c7a4c31841a2ea27246a05eed8a80c319bfc0d3e644412ec9ce437105ff6c"}, + {file = "grpcio-1.59.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:c4dfdb49f4997dc664f30116af2d34751b91aa031f8c8ee251ce4dcfc11277b0"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:61bc72a00ecc2b79d9695220b4d02e8ba53b702b42411397e831c9b0589f08a3"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f367e4b524cb319e50acbdea57bb63c3b717c5d561974ace0b065a648bb3bad3"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849c47ef42424c86af069a9c5e691a765e304079755d5c29eff511263fad9c2a"}, + {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c0488c2b0528e6072010182075615620071371701733c63ab5be49140ed8f7f0"}, + {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:611d9aa0017fa386809bddcb76653a5ab18c264faf4d9ff35cb904d44745f575"}, + {file = "grpcio-1.59.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e5378785dce2b91eb2e5b857ec7602305a3b5cf78311767146464bfa365fc897"}, + {file = "grpcio-1.59.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:fe976910de34d21057bcb53b2c5e667843588b48bf11339da2a75f5c4c5b4055"}, + {file = "grpcio-1.59.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:c041a91712bf23b2a910f61e16565a05869e505dc5a5c025d429ca6de5de842c"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ae444221b2c16d8211b55326f8ba173ba8f8c76349bfc1768198ba592b58f74"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceb1e68135788c3fce2211de86a7597591f0b9a0d2bb80e8401fd1d915991bac"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4b1cc3a9dc1924d2eb26eec8792fedd4b3fcd10111e26c1d551f2e4eda79ce"}, + {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:871371ce0c0055d3db2a86fdebd1e1d647cf21a8912acc30052660297a5a6901"}, + {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:93e9cb546e610829e462147ce724a9cb108e61647a3454500438a6deef610be1"}, + {file = "grpcio-1.59.0-cp38-cp38-win32.whl", hash = "sha256:f21917aa50b40842b51aff2de6ebf9e2f6af3fe0971c31960ad6a3a2b24988f4"}, + {file = "grpcio-1.59.0-cp38-cp38-win_amd64.whl", hash = "sha256:14890da86a0c0e9dc1ea8e90101d7a3e0e7b1e71f4487fab36e2bfd2ecadd13c"}, + {file = "grpcio-1.59.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:34341d9e81a4b669a5f5dca3b2a760b6798e95cdda2b173e65d29d0b16692857"}, + {file = "grpcio-1.59.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:986de4aa75646e963466b386a8c5055c8b23a26a36a6c99052385d6fe8aaf180"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:aca8a24fef80bef73f83eb8153f5f5a0134d9539b4c436a716256b311dda90a6"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:936b2e04663660c600d5173bc2cc84e15adbad9c8f71946eb833b0afc205b996"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc8bf2e7bc725e76c0c11e474634a08c8f24bcf7426c0c6d60c8f9c6e70e4d4a"}, + {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81d86a096ccd24a57fa5772a544c9e566218bc4de49e8c909882dae9d73392df"}, + {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2ea95cd6abbe20138b8df965b4a8674ec312aaef3147c0f46a0bac661f09e8d0"}, + {file = "grpcio-1.59.0-cp39-cp39-win32.whl", hash = "sha256:3b8ff795d35a93d1df6531f31c1502673d1cebeeba93d0f9bd74617381507e3f"}, + {file = "grpcio-1.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:38823bd088c69f59966f594d087d3a929d1ef310506bee9e3648317660d65b81"}, + {file = "grpcio-1.59.0.tar.gz", hash = "sha256:acf70a63cf09dd494000007b798aff88a436e1c03b394995ce450be437b8e54f"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.59.0)"] + +[[package]] +name = "grpcio-tools" +version = "1.59.0" +description = "Protobuf code generator for gRPC" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-tools-1.59.0.tar.gz", hash = "sha256:aa4018f2d8662ac4d9830445d3d253a11b3e096e8afe20865547137aa1160e93"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:882b809b42b5464bee55288f4e60837297f9618e53e69ae3eea6d61b05ce48fa"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:4499d4bc5aa9c7b645018d8b0db4bebd663d427aabcd7bee7777046cb1bcbca7"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:f381ae3ad6a5eb27aad8d810438937d8228977067c54e0bd456fce7e11fdbf3d"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1c684c0d9226d04cadafced620a46ab38c346d0780eaac7448da96bf12066a3"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40cbf712769242c2ba237745285ef789114d7fcfe8865fc4817d87f20015e99a"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1df755951f204e65bf9232a9cac5afe7d6b8e4c87ac084d3ecd738fdc7aa4174"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:de156c18b0c638aaee3be6ad650c8ba7dec94ed4bac26403aec3dce95ffe9407"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-win32.whl", hash = "sha256:9af7e138baa9b2895cf1f3eb718ac96fc5ae2f8e31fca405e21e0e5cd1643c52"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:f14a6e4f700dfd30ff8f0e6695f944affc16ae5a1e738666b3fae4e44b65637e"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:db030140d0da2368319e2f23655df3baec278c7e0078ecbe051eaf609a69382c"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:eeed386971bb8afc3ec45593df6a1154d680d87be1209ef8e782e44f85f47e64"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:962d1a3067129152cee3e172213486cb218a6bad703836991f46f216caefcf00"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26eb2eebf150a33ebf088e67c1acf37eb2ac4133d9bfccbaa011ad2148c08b42"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2d6da553980c590487f2e7fd3ec9c1ad8805ff2ec77977b92faa7e3ca14e1f"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:335e2f355a0c544a88854e2c053aff8a3f398b84a263a96fa19d063ca1fe513a"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:204e08f807b1d83f5f0efea30c4e680afe26a43dec8ba614a45fa698a7ef0a19"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-win32.whl", hash = "sha256:05bf7b3ed01c8a562bb7e840f864c58acedbd6924eb616367c0bd0a760bdf483"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:df85096fcac7cea8aa5bd84b7a39c4cdbf556b93669bb4772eb96aacd3222a4e"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:240a7a3c2c54f77f1f66085a635bca72003d02f56a670e7db19aec531eda8f78"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:6119f62c462d119c63227b9534210f0f13506a888151b9bf586f71e7edf5088b"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:387662bee8e4c0b52cc0f61eaaca0ca583f5b227103f685b76083a3590a71a3e"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f0da5861ee276ca68493b217daef358960e8527cc63c7cb292ca1c9c54939af"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f0806de1161c7f248e4c183633ee7a58dfe45c2b77ddf0136e2e7ad0650b1b"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c683be38a9bf4024c223929b4cd2f0a0858c94e9dc8b36d7eaa5a48ce9323a6f"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f965707da2b48a33128615bcfebedd215a3a30e346447e885bb3da37a143177a"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-win32.whl", hash = "sha256:2ee960904dde12a7fa48e1591a5b3eeae054bdce57bacf9fd26685a98138f5bf"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:71cc6db1d66da3bc3730d9937bddc320f7b1f1dfdff6342bcb5741515fe4110b"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:f6263b85261b62471cb97b7505df72d72b8b62e5e22d8184924871a6155b4dbf"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:b8e95d921cc2a1521d4750eedefec9f16031457920a6677edebe9d1b2ad6ae60"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:cb63055739808144b541986291679d643bae58755d0eb082157c4d4c04443905"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c4634b3589efa156a8d5860c0a2547315bd5c9e52d14c960d716fe86e0927be"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d970aa26854f535ffb94ea098aa8b43de020d9a14682e4a15dcdaeac7801b27"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:821dba464d84ebbcffd9d420302404db2fa7a40c7ff4c4c4c93726f72bfa2769"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0548e901894399886ff4a4cd808cb850b60c021feb4a8977a0751f14dd7e55d9"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bb87158dbbb9e5a79effe78d54837599caa16df52d8d35366e06a91723b587ae"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:1d551ff42962c7c333c3da5c70d5e617a87dee581fa2e2c5ae2d5137c8886779"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:4ee443abcd241a5befb05629013fbf2eac637faa94aaa3056351aded8a31c1bc"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:520c0c83ea79d14b0679ba43e19c64ca31d30926b26ad2ca7db37cbd89c167e2"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9fc02a6e517c34dcf885ff3b57260b646551083903e3d2c780b4971ce7d4ab7c"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aec8a4ed3808b7dfc1276fe51e3e24bec0eeaf610d395bcd42934647cf902a3"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:99b3bde646720bbfb77f263f5ba3e1a0de50632d43c38d405a0ef9c7e94373cd"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:51d9595629998d8b519126c5a610f15deb0327cd6325ed10796b47d1d292e70b"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-win32.whl", hash = "sha256:bfa4b2b7d21c5634b62e5f03462243bd705adc1a21806b5356b8ce06d902e160"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-win_amd64.whl", hash = "sha256:9ed05197c5ab071e91bcef28901e97ca168c4ae94510cb67a14cb4931b94255a"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:498e7be0b14385980efa681444ba481349c131fc5ec88003819f5d929646947c"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b519f2ecde9a579cad2f4a7057d5bb4e040ad17caab8b5e691ed7a13b9db0be9"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:ef3e8aca2261f7f07436d4e2111556c1fb9bf1f9cfcdf35262743ccdee1b6ce9"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a7f226b741b2ebf7e2d0779d2c9b17f446d1b839d59886c1619e62cc2ae472"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:784aa52965916fec5afa1a28eeee6f0073bb43a2a1d7fedf963393898843077a"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e312ddc2d8bec1a23306a661ad52734f984c9aad5d8f126ebb222a778d95407d"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:868892ad9e00651a38dace3e4924bae82fc4fd4df2c65d37b74381570ee8deb1"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-win32.whl", hash = "sha256:a4f6cae381f21fee1ef0a5cbbbb146680164311157ae618edf3061742d844383"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:4a10e59cca462208b489478340b52a96d64e8b8b6f1ac097f3e8cb211d3f66c0"}, +] + +[package.dependencies] +grpcio = ">=1.59.0" +protobuf = ">=4.21.6,<5.0dev" +setuptools = "*" + +[[package]] +name = "grpclib" +version = "0.4.6" +description = "Pure-Python gRPC implementation for asyncio" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpclib-0.4.6.tar.gz", hash = "sha256:595d05236ca8b8f8e433f5bf6095e6354c1d8777d003ddaf5288efa9611e3fd6"}, +] + +[package.dependencies] +h2 = ">=3.1.0,<5" +multidict = "*" + +[package.extras] +protobuf = ["protobuf (>=3.20.0)"] + +[[package]] +name = "h2" +version = "4.1.0" +description = "HTTP/2 State-Machine based protocol implementation" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"}, + {file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"}, +] + +[package.dependencies] +hpack = ">=4.0,<5" +hyperframe = ">=6.0,<7" + +[[package]] +name = "hpack" +version = "4.0.0" +description = "Pure-Python HPACK header compression" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"}, + {file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"}, +] + +[[package]] +name = "hyperframe" +version = "6.0.1" +description = "HTTP/2 framing layer for Python" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"}, + {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, +] + +[[package]] +name = "isort" +version = "5.12.0" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] + +[package.extras] +colors = ["colorama (>=0.4.3)"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] + +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pastel" +version = "0.2.1" +description = "Bring colors to your terminal." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"}, + {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, +] + +[[package]] +name = "pathspec" +version = "0.11.2" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] + +[[package]] +name = "platformdirs" +version = "3.11.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, +] + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] + +[[package]] +name = "poethepoet" +version = "0.22.1" +description = "A task runner that works well with poetry." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "poethepoet-0.22.1-py3-none-any.whl", hash = "sha256:1da4cd00d3b2c44b811c91616a744cf71094a26a299ea9956025162d34eef1a5"}, + {file = "poethepoet-0.22.1.tar.gz", hash = "sha256:e758bcac731fa9ac0b812389589541e32b825c4a1894e16fa90aeb1946ba2823"}, +] + +[package.dependencies] +pastel = ">=0.2.1,<0.3.0" +tomli = ">=1.2.2" + +[package.extras] +poetry-plugin = ["poetry (>=1.0,<2.0)"] + +[[package]] +name = "protobuf" +version = "4.24.4" +description = "" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "protobuf-4.24.4-cp310-abi3-win32.whl", hash = "sha256:ec9912d5cb6714a5710e28e592ee1093d68c5ebfeda61983b3f40331da0b1ebb"}, + {file = "protobuf-4.24.4-cp310-abi3-win_amd64.whl", hash = "sha256:1badab72aa8a3a2b812eacfede5020472e16c6b2212d737cefd685884c191085"}, + {file = "protobuf-4.24.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e61a27f362369c2f33248a0ff6896c20dcd47b5d48239cb9720134bef6082e4"}, + {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:bffa46ad9612e6779d0e51ae586fde768339b791a50610d85eb162daeb23661e"}, + {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b493cb590960ff863743b9ff1452c413c2ee12b782f48beca77c8da3e2ffe9d9"}, + {file = "protobuf-4.24.4-cp37-cp37m-win32.whl", hash = "sha256:dbbed8a56e56cee8d9d522ce844a1379a72a70f453bde6243e3c86c30c2a3d46"}, + {file = "protobuf-4.24.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6b7d2e1c753715dcfe9d284a25a52d67818dd43c4932574307daf836f0071e37"}, + {file = "protobuf-4.24.4-cp38-cp38-win32.whl", hash = "sha256:02212557a76cd99574775a81fefeba8738d0f668d6abd0c6b1d3adcc75503dbe"}, + {file = "protobuf-4.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:2fa3886dfaae6b4c5ed2730d3bf47c7a38a72b3a1f0acb4d4caf68e6874b947b"}, + {file = "protobuf-4.24.4-cp39-cp39-win32.whl", hash = "sha256:b77272f3e28bb416e2071186cb39efd4abbf696d682cbb5dc731308ad37fa6dd"}, + {file = "protobuf-4.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:9fee5e8aa20ef1b84123bb9232b3f4a5114d9897ed89b4b8142d81924e05d79b"}, + {file = "protobuf-4.24.4-py3-none-any.whl", hash = "sha256:80797ce7424f8c8d2f2547e2d42bfbb6c08230ce5832d6c099a37335c9c90a92"}, + {file = "protobuf-4.24.4.tar.gz", hash = "sha256:5a70731910cd9104762161719c3d883c960151eea077134458503723b60e3667"}, +] + +[[package]] +name = "setuptools" +version = "68.2.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.9" +content-hash = "5d6ccbd9b0e9c3c971f06b3893e77d61d8f97665d7e9b10d6e39c828c237e952" diff --git a/protos/python/pyproject.toml b/protos/python/pyproject.toml new file mode 100644 index 0000000000000..2faea9a7c7b44 --- /dev/null +++ b/protos/python/pyproject.toml @@ -0,0 +1,30 @@ +[tool.poetry] +name = "aptos-protos" +version = "1.1.2" +description = "Code generated from protobuf definitions for the Aptos tech stack" +authors = ["Aptos Labs "] +license = "Apache-2.0" +readme = "README.md" +repository = "https://github.com/aptos-labs/aptos-core" +homepage = "https://github.com/aptos-labs/aptos-core/tree/main/protos/python" +keywords = ["web3", "aptos", "blockchain", "indexer"] +packages = [{include = "aptos_protos"}] + +[tool.poe.tasks] +generate = "./generate.sh" + +[tool.poetry.dependencies] +python = "^3.9" +grpcio = "^1.57.0" +protobuf = "^4.24.2" +grpclib = "^0.4.5" + +[tool.poetry.group.dev.dependencies] +grpcio-tools = "^1.57.0" +poethepoet = "^0.22.0" +black = "^23.7.0" +isort = "^5.12.0" + +[build-system] +requires = ["poetry-core>=1.4.2"] +build-backend = "poetry.core.masonry.api" diff --git a/protos/rust/CHANGELOG.md b/protos/rust/CHANGELOG.md new file mode 100644 index 0000000000000..42e42a4c31b36 --- /dev/null +++ b/protos/rust/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the aptos-protos crate will be captured in this file. This changelog is written by hand for now. It adheres to the format set out by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## Unreleased + +## 1.1.2 (2023-10-17) +- Initial release to crates.io. diff --git a/protos/rust/Cargo.toml b/protos/rust/Cargo.toml new file mode 100644 index 0000000000000..82881e3500f72 --- /dev/null +++ b/protos/rust/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "aptos-protos" +version = "1.1.2" +authors = ["Aptos Labs "] +description = "Code generated from Aptos protobuf definitions" +repository = "https://github.com/aptos-labs/aptos-core" +homepage = "https://aptoslabs.com" +license = "Apache-2.0" +publish = true +edition = "2021" + +[dependencies] +futures-core = { workspace = true } +pbjson = { workspace = true } +prost = { workspace = true } +prost-types = { workspace = true } +serde = { workspace = true } +tonic = { workspace = true } diff --git a/protos/rust/README.md b/protos/rust/README.md new file mode 100644 index 0000000000000..94860eaa580c7 --- /dev/null +++ b/protos/rust/README.md @@ -0,0 +1,19 @@ +# Aptos Protos + +This repository contains the protobuf definitions for Aptos. + +## Usage +Import generated structs like this: +```rust +use aptos_protos::transaction::v1::Transaction; +``` + +Then use them like this: +```rust +fn parse(transaction: Transaction) { + // Parse the transaction. +} +``` + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/protos/rust/src/lib.rs b/protos/rust/src/lib.rs new file mode 100644 index 0000000000000..9af20b28c1c98 --- /dev/null +++ b/protos/rust/src/lib.rs @@ -0,0 +1,5 @@ +// Copyright © Aptos Foundation + +#[allow(clippy::all)] +mod pb; +pub use pb::aptos::*; diff --git a/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs new file mode 100644 index 0000000000000..0a74c48967068 --- /dev/null +++ b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs @@ -0,0 +1,208 @@ +// Copyright © Aptos Foundation + +// @generated +/// Transaction is a simplified representation for the transaction +/// happened on the chain. Mainly built for streaming into BigQuery. +/// It matches with the structure defined for the transaction in Indexer. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Transaction { + #[prost(int64, required, tag="1")] + pub version: i64, + #[prost(int64, required, tag="2")] + pub block_height: i64, + #[prost(string, required, tag="3")] + pub hash: ::prost::alloc::string::String, + #[prost(string, required, tag="4")] + pub r#type: ::prost::alloc::string::String, + #[prost(string, optional, tag="5")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, required, tag="6")] + pub state_change_hash: ::prost::alloc::string::String, + #[prost(string, required, tag="7")] + pub event_root_hash: ::prost::alloc::string::String, + #[prost(string, optional, tag="8")] + pub state_checkpoint_hash: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint64, required, tag="9")] + pub gas_used: u64, + #[prost(bool, required, tag="10")] + pub success: bool, + #[prost(string, required, tag="11")] + pub vm_status: ::prost::alloc::string::String, + #[prost(string, required, tag="12")] + pub accumulator_root_hash: ::prost::alloc::string::String, + #[prost(int64, required, tag="13")] + pub num_events: i64, + #[prost(int64, required, tag="14")] + pub num_write_set_changes: i64, + #[prost(int64, required, tag="15")] + pub epoch: i64, + #[prost(int64, required, tag="16")] + pub inserted_at: i64, +} +/// Encoded file descriptor set for the `aptos.bigquery_schema.transaction.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0x8a, 0x14, 0x0a, 0x2a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xa3, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07, + 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, + 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, + 0x0a, 0x15, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x09, 0x52, 0x13, 0x61, + 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x0d, 0x20, 0x02, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x03, + 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x0f, 0x20, + 0x02, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x02, 0x28, 0x03, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0xeb, 0x01, 0x0a, 0x28, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, + 0x42, 0x54, 0xaa, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x42, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x2f, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x26, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xa1, 0x0d, 0x0a, 0x06, 0x12, 0x04, + 0x08, 0x00, 0x20, 0x01, 0x0a, 0xd7, 0x02, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x08, 0x00, 0x12, 0x1a, + 0x86, 0x02, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2c, 0x20, 0x74, 0x68, 0x75, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x29, 0x0a, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x0a, 0x20, 0x60, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x60, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x20, + 0x54, 0x6f, 0x20, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x20, 0x68, 0x61, 0x73, 0x73, 0x6c, 0x65, 0x2c, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x68, 0x65, 0x72, 0x65, 0x2e, 0x0a, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, + 0x0a, 0x01, 0x02, 0x12, 0x03, 0x0a, 0x00, 0x2d, 0x0a, 0xd6, 0x01, 0x0a, 0x02, 0x04, 0x00, 0x12, + 0x04, 0x0f, 0x00, 0x20, 0x01, 0x1a, 0xc9, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x20, + 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x49, 0x74, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, + 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x13, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x10, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x04, 0x12, 0x03, 0x10, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x05, 0x12, 0x03, 0x10, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x10, 0x13, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x10, + 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x04, 0x24, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x11, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x11, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x11, 0x13, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x11, 0x22, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, + 0x03, 0x12, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x12, + 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x12, 0x0d, 0x13, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x12, 0x14, 0x18, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x12, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x13, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x04, 0x12, 0x03, 0x13, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, + 0x12, 0x03, 0x13, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, + 0x13, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x13, 0x1b, + 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x14, 0x04, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x14, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x14, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x14, 0x14, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, + 0x03, 0x12, 0x03, 0x14, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, + 0x15, 0x04, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x15, 0x04, + 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, 0x15, 0x0d, 0x13, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x15, 0x14, 0x25, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x15, 0x28, 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x06, 0x12, 0x03, 0x16, 0x04, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x04, 0x12, 0x03, 0x16, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, + 0x03, 0x16, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x16, + 0x14, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x16, 0x26, 0x27, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x17, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x17, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x07, 0x05, 0x12, 0x03, 0x17, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x01, 0x12, 0x03, 0x17, 0x14, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, + 0x12, 0x03, 0x17, 0x2c, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x18, + 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x18, 0x04, 0x0c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x18, 0x0d, 0x13, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x18, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x18, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x09, 0x12, 0x03, 0x19, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, + 0x12, 0x03, 0x19, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, + 0x19, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x19, 0x12, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x19, 0x1c, 0x1e, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x1a, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x1a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0a, 0x05, 0x12, 0x03, 0x1a, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x01, 0x12, 0x03, 0x1a, 0x14, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, + 0x03, 0x1a, 0x20, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x1b, 0x04, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x1b, 0x04, 0x0c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x1b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x1b, 0x14, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x1b, 0x2c, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x0c, 0x12, 0x03, 0x1c, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, + 0x03, 0x1c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x1c, + 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x1c, 0x13, 0x1d, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x1c, 0x20, 0x22, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x1d, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x1d, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0d, 0x05, 0x12, 0x03, 0x1d, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, + 0x12, 0x03, 0x1d, 0x13, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, + 0x1d, 0x2b, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x1e, 0x04, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x1e, 0x04, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x05, 0x12, 0x03, 0x1e, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x1e, 0x13, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0e, 0x03, 0x12, 0x03, 0x1e, 0x1b, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, + 0x12, 0x03, 0x1f, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x03, + 0x1f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x05, 0x12, 0x03, 0x1f, 0x0d, + 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x1f, 0x13, 0x1e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x1f, 0x21, 0x23, +]; +include!("aptos.bigquery_schema.transaction.v1.serde.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs new file mode 100644 index 0000000000000..99282cd88ad01 --- /dev/null +++ b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs @@ -0,0 +1,303 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for Transaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 14; + if self.payload.is_some() { + len += 1; + } + if self.state_checkpoint_hash.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.bigquery_schema.transaction.v1.Transaction", len)?; + struct_ser.serialize_field("version", ToString::to_string(&self.version).as_str())?; + struct_ser.serialize_field("blockHeight", ToString::to_string(&self.block_height).as_str())?; + struct_ser.serialize_field("hash", &self.hash)?; + struct_ser.serialize_field("type", &self.r#type)?; + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + struct_ser.serialize_field("stateChangeHash", &self.state_change_hash)?; + struct_ser.serialize_field("eventRootHash", &self.event_root_hash)?; + if let Some(v) = self.state_checkpoint_hash.as_ref() { + struct_ser.serialize_field("stateCheckpointHash", v)?; + } + struct_ser.serialize_field("gasUsed", ToString::to_string(&self.gas_used).as_str())?; + struct_ser.serialize_field("success", &self.success)?; + struct_ser.serialize_field("vmStatus", &self.vm_status)?; + struct_ser.serialize_field("accumulatorRootHash", &self.accumulator_root_hash)?; + struct_ser.serialize_field("numEvents", ToString::to_string(&self.num_events).as_str())?; + struct_ser.serialize_field("numWriteSetChanges", ToString::to_string(&self.num_write_set_changes).as_str())?; + struct_ser.serialize_field("epoch", ToString::to_string(&self.epoch).as_str())?; + struct_ser.serialize_field("insertedAt", ToString::to_string(&self.inserted_at).as_str())?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Transaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "version", + "block_height", + "blockHeight", + "hash", + "type", + "payload", + "state_change_hash", + "stateChangeHash", + "event_root_hash", + "eventRootHash", + "state_checkpoint_hash", + "stateCheckpointHash", + "gas_used", + "gasUsed", + "success", + "vm_status", + "vmStatus", + "accumulator_root_hash", + "accumulatorRootHash", + "num_events", + "numEvents", + "num_write_set_changes", + "numWriteSetChanges", + "epoch", + "inserted_at", + "insertedAt", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Version, + BlockHeight, + Hash, + Type, + Payload, + StateChangeHash, + EventRootHash, + StateCheckpointHash, + GasUsed, + Success, + VmStatus, + AccumulatorRootHash, + NumEvents, + NumWriteSetChanges, + Epoch, + InsertedAt, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "version" => Ok(GeneratedField::Version), + "blockHeight" | "block_height" => Ok(GeneratedField::BlockHeight), + "hash" => Ok(GeneratedField::Hash), + "type" => Ok(GeneratedField::Type), + "payload" => Ok(GeneratedField::Payload), + "stateChangeHash" | "state_change_hash" => Ok(GeneratedField::StateChangeHash), + "eventRootHash" | "event_root_hash" => Ok(GeneratedField::EventRootHash), + "stateCheckpointHash" | "state_checkpoint_hash" => Ok(GeneratedField::StateCheckpointHash), + "gasUsed" | "gas_used" => Ok(GeneratedField::GasUsed), + "success" => Ok(GeneratedField::Success), + "vmStatus" | "vm_status" => Ok(GeneratedField::VmStatus), + "accumulatorRootHash" | "accumulator_root_hash" => Ok(GeneratedField::AccumulatorRootHash), + "numEvents" | "num_events" => Ok(GeneratedField::NumEvents), + "numWriteSetChanges" | "num_write_set_changes" => Ok(GeneratedField::NumWriteSetChanges), + "epoch" => Ok(GeneratedField::Epoch), + "insertedAt" | "inserted_at" => Ok(GeneratedField::InsertedAt), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Transaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.bigquery_schema.transaction.v1.Transaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut version__ = None; + let mut block_height__ = None; + let mut hash__ = None; + let mut r#type__ = None; + let mut payload__ = None; + let mut state_change_hash__ = None; + let mut event_root_hash__ = None; + let mut state_checkpoint_hash__ = None; + let mut gas_used__ = None; + let mut success__ = None; + let mut vm_status__ = None; + let mut accumulator_root_hash__ = None; + let mut num_events__ = None; + let mut num_write_set_changes__ = None; + let mut epoch__ = None; + let mut inserted_at__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Version => { + if version__.is_some() { + return Err(serde::de::Error::duplicate_field("version")); + } + version__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::BlockHeight => { + if block_height__.is_some() { + return Err(serde::de::Error::duplicate_field("blockHeight")); + } + block_height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Hash => { + if hash__.is_some() { + return Err(serde::de::Error::duplicate_field("hash")); + } + hash__ = Some(map.next_value()?); + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value()?); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map.next_value()?; + } + GeneratedField::StateChangeHash => { + if state_change_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateChangeHash")); + } + state_change_hash__ = Some(map.next_value()?); + } + GeneratedField::EventRootHash => { + if event_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("eventRootHash")); + } + event_root_hash__ = Some(map.next_value()?); + } + GeneratedField::StateCheckpointHash => { + if state_checkpoint_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateCheckpointHash")); + } + state_checkpoint_hash__ = map.next_value()?; + } + GeneratedField::GasUsed => { + if gas_used__.is_some() { + return Err(serde::de::Error::duplicate_field("gasUsed")); + } + gas_used__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Success => { + if success__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + success__ = Some(map.next_value()?); + } + GeneratedField::VmStatus => { + if vm_status__.is_some() { + return Err(serde::de::Error::duplicate_field("vmStatus")); + } + vm_status__ = Some(map.next_value()?); + } + GeneratedField::AccumulatorRootHash => { + if accumulator_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("accumulatorRootHash")); + } + accumulator_root_hash__ = Some(map.next_value()?); + } + GeneratedField::NumEvents => { + if num_events__.is_some() { + return Err(serde::de::Error::duplicate_field("numEvents")); + } + num_events__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::NumWriteSetChanges => { + if num_write_set_changes__.is_some() { + return Err(serde::de::Error::duplicate_field("numWriteSetChanges")); + } + num_write_set_changes__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Epoch => { + if epoch__.is_some() { + return Err(serde::de::Error::duplicate_field("epoch")); + } + epoch__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::InsertedAt => { + if inserted_at__.is_some() { + return Err(serde::de::Error::duplicate_field("insertedAt")); + } + inserted_at__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(Transaction { + version: version__.ok_or_else(|| serde::de::Error::missing_field("version"))?, + block_height: block_height__.ok_or_else(|| serde::de::Error::missing_field("blockHeight"))?, + hash: hash__.ok_or_else(|| serde::de::Error::missing_field("hash"))?, + r#type: r#type__.ok_or_else(|| serde::de::Error::missing_field("type"))?, + payload: payload__, + state_change_hash: state_change_hash__.ok_or_else(|| serde::de::Error::missing_field("stateChangeHash"))?, + event_root_hash: event_root_hash__.ok_or_else(|| serde::de::Error::missing_field("eventRootHash"))?, + state_checkpoint_hash: state_checkpoint_hash__, + gas_used: gas_used__.ok_or_else(|| serde::de::Error::missing_field("gasUsed"))?, + success: success__.ok_or_else(|| serde::de::Error::missing_field("success"))?, + vm_status: vm_status__.ok_or_else(|| serde::de::Error::missing_field("vmStatus"))?, + accumulator_root_hash: accumulator_root_hash__.ok_or_else(|| serde::de::Error::missing_field("accumulatorRootHash"))?, + num_events: num_events__.ok_or_else(|| serde::de::Error::missing_field("numEvents"))?, + num_write_set_changes: num_write_set_changes__.ok_or_else(|| serde::de::Error::missing_field("numWriteSetChanges"))?, + epoch: epoch__.ok_or_else(|| serde::de::Error::missing_field("epoch"))?, + inserted_at: inserted_at__.ok_or_else(|| serde::de::Error::missing_field("insertedAt"))?, + }) + } + } + deserializer.deserialize_struct("aptos.bigquery_schema.transaction.v1.Transaction", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.indexer.v1.rs b/protos/rust/src/pb/aptos.indexer.v1.rs new file mode 100644 index 0000000000000..bf0cd195243f1 --- /dev/null +++ b/protos/rust/src/pb/aptos.indexer.v1.rs @@ -0,0 +1,159 @@ +// Copyright © Aptos Foundation + +// @generated +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetTransactionsRequest { + /// Required; start version of current stream. + #[prost(uint64, optional, tag="1")] + pub starting_version: ::core::option::Option, + /// Optional; number of transactions to return in current stream. + /// If not present, return an infinite stream of transactions. + #[prost(uint64, optional, tag="2")] + pub transactions_count: ::core::option::Option, + /// Optional; number of transactions in each `TransactionsResponse` for current stream. + /// If not present, default to 1000. If larger than 1000, request will be rejected. + #[prost(uint64, optional, tag="3")] + pub batch_size: ::core::option::Option, +} +/// TransactionsResponse is a batch of transactions. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsResponse { + /// Required; transactions data. + #[prost(message, repeated, tag="1")] + pub transactions: ::prost::alloc::vec::Vec, + /// Required; chain id. + #[prost(uint64, optional, tag="2")] + pub chain_id: ::core::option::Option, +} +/// Encoded file descriptor set for the `aptos.indexer.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xb2, 0x0f, 0x0a, 0x1f, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x01, 0x52, + 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x32, 0x70, 0x0a, 0x07, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x86, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x42, 0x0c, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, + 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, + 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, + 0x4a, 0xda, 0x09, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x22, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, + 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, + 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, + 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x14, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x1e, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, + 0x12, 0x03, 0x0b, 0x02, 0x3c, 0x1a, 0x2c, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x0b, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x0b, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x12, 0x22, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x0b, 0x27, 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, + 0x00, 0x08, 0x06, 0x12, 0x03, 0x0b, 0x28, 0x3a, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x01, 0x12, 0x03, 0x0f, 0x02, 0x3e, 0x1a, 0x7b, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0f, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0f, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0f, 0x12, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0f, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x0f, 0x29, 0x3d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, + 0x01, 0x08, 0x06, 0x12, 0x03, 0x0f, 0x2a, 0x3c, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x13, 0x02, 0x21, 0x1a, 0xa6, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x60, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x2c, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x13, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x13, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x13, 0x12, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x13, 0x1f, 0x20, 0x0a, 0x3e, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x17, + 0x00, 0x1d, 0x01, 0x1a, 0x32, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, + 0x17, 0x08, 0x1c, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x19, 0x04, 0x40, + 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x19, 0x04, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x19, 0x0d, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x2e, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x3e, 0x3f, 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, + 0x12, 0x03, 0x1c, 0x04, 0x36, 0x1a, 0x15, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x05, 0x12, 0x03, 0x1c, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x1c, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x1c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x1c, + 0x21, 0x35, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x1c, 0x22, + 0x34, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x1f, 0x00, 0x22, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x0f, 0x0a, 0x7a, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x21, 0x04, 0x56, 0x1a, 0x6d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x21, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x21, 0x18, + 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x21, 0x39, 0x3f, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x21, 0x40, 0x54, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.indexer.v1.serde.rs"); +include!("aptos.indexer.v1.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.indexer.v1.serde.rs b/protos/rust/src/pb/aptos.indexer.v1.serde.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.indexer.v1.serde.rs rename to protos/rust/src/pb/aptos.indexer.v1.serde.rs diff --git a/crates/aptos-protos/src/pb/aptos.indexer.v1.tonic.rs b/protos/rust/src/pb/aptos.indexer.v1.tonic.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.indexer.v1.tonic.rs rename to protos/rust/src/pb/aptos.indexer.v1.tonic.rs diff --git a/protos/rust/src/pb/aptos.internal.fullnode.v1.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.rs new file mode 100644 index 0000000000000..eb0b86fecbf9b --- /dev/null +++ b/protos/rust/src/pb/aptos.internal.fullnode.v1.rs @@ -0,0 +1,292 @@ +// Copyright © Aptos Foundation + +// @generated +// Transaction data is transferred via 1 stream with batches until terminated. +// One stream consists: +// StreamStatus: INIT with version x +// loop k: +// TransactionOutput data(size n) +// StreamStatus: BATCH_END with version x + (k + 1) * n - 1 + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsOutput { + #[prost(message, repeated, tag="1")] + pub transactions: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StreamStatus { + #[prost(enumeration="stream_status::StatusType", tag="1")] + pub r#type: i32, + /// Required. Start version of current batch/stream, inclusive. + #[prost(uint64, tag="2")] + pub start_version: u64, + /// End version of current *batch*, inclusive. + #[prost(uint64, optional, tag="3")] + pub end_version: ::core::option::Option, +} +/// Nested message and enum types in `StreamStatus`. +pub mod stream_status { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum StatusType { + Unspecified = 0, + /// Signal for the start of the stream. + Init = 1, + /// Signal for the end of the batch. + BatchEnd = 2, + } + impl StatusType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + StatusType::Unspecified => "STATUS_TYPE_UNSPECIFIED", + StatusType::Init => "STATUS_TYPE_INIT", + StatusType::BatchEnd => "STATUS_TYPE_BATCH_END", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "STATUS_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "STATUS_TYPE_INIT" => Some(Self::Init), + "STATUS_TYPE_BATCH_END" => Some(Self::BatchEnd), + _ => None, + } + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetTransactionsFromNodeRequest { + /// Required; start version of current stream. + /// If not set will panic somewhere + #[prost(uint64, optional, tag="1")] + pub starting_version: ::core::option::Option, + /// Optional; number of transactions to return in current stream. + /// If not set, response streams infinitely. + #[prost(uint64, optional, tag="2")] + pub transactions_count: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsFromNodeResponse { + /// Making sure that all the responses include a chain id + #[prost(uint32, tag="3")] + pub chain_id: u32, + #[prost(oneof="transactions_from_node_response::Response", tags="1, 2")] + pub response: ::core::option::Option, +} +/// Nested message and enum types in `TransactionsFromNodeResponse`. +pub mod transactions_from_node_response { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Response { + #[prost(message, tag="1")] + Status(super::StreamStatus), + #[prost(message, tag="2")] + Data(super::TransactionsOutput), + } +} +/// Encoded file descriptor set for the `aptos.internal.fullnode.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xf1, 0x17, 0x0a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2f, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x1a, + 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0a, + 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, 0x5a, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, + 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, + 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x1e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, + 0x48, 0x01, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa2, 0x01, 0x0a, 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, + 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x91, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0xbe, 0x01, 0x0a, 0x1e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x11, + 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x46, 0xaa, 0x02, 0x1a, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, + 0x6f, 0x64, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x26, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x41, + 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3a, 0x3a, + 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x8d, 0x0e, 0x0a, + 0x06, 0x12, 0x04, 0x03, 0x00, 0x38, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, + 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, + 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, + 0x23, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, 0x0a, 0xfe, 0x01, 0x0a, + 0x02, 0x04, 0x00, 0x12, 0x04, 0x10, 0x00, 0x12, 0x01, 0x32, 0xf1, 0x01, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, + 0x20, 0x31, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, 0x3a, 0x0a, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x20, 0x49, + 0x4e, 0x49, 0x54, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x6f, 0x70, 0x20, 0x6b, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x28, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6e, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x3a, 0x20, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x20, 0x2b, 0x20, 0x28, 0x6b, 0x20, + 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x6e, 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x10, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x11, 0x02, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x11, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x11, + 0x0b, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x11, 0x2c, 0x38, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x11, 0x3c, 0x3d, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x14, 0x00, 0x21, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, + 0x01, 0x12, 0x03, 0x14, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, + 0x15, 0x02, 0x1b, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x15, + 0x07, 0x11, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x16, 0x04, + 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x04, + 0x1b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, 0x1e, + 0x1f, 0x0a, 0x34, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x04, 0x19, + 0x1a, 0x25, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x18, 0x04, 0x14, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x01, 0x02, 0x12, 0x03, 0x18, 0x17, 0x18, 0x0a, 0x31, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x1a, 0x04, 0x1e, 0x1a, 0x22, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1a, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x1a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x00, 0x12, 0x03, 0x1c, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x1c, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x1c, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1c, 0x14, + 0x15, 0x0a, 0x4a, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x1e, 0x02, 0x1b, 0x1a, 0x3d, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1e, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1e, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x1e, 0x19, 0x1a, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, + 0x03, 0x20, 0x02, 0x37, 0x1a, 0x2c, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x2a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x2a, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x20, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, 0x20, 0x0b, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x20, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x20, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x02, 0x08, 0x12, 0x03, 0x20, 0x22, 0x36, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x02, + 0x08, 0x06, 0x12, 0x03, 0x20, 0x23, 0x35, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x23, + 0x00, 0x2b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x23, 0x08, 0x26, 0x0a, + 0x5a, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x26, 0x02, 0x3c, 0x1a, 0x4d, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x6e, 0x69, 0x63, + 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x26, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x26, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x26, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x26, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x26, 0x27, + 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x00, 0x08, 0x06, 0x12, 0x03, 0x26, 0x28, 0x3a, + 0x0a, 0x76, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x02, 0x3e, 0x1a, 0x69, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x2a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, + 0x03, 0x2a, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2a, + 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2a, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x2a, 0x29, 0x3d, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x02, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x2a, 0x2a, 0x3c, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x03, 0x12, 0x04, 0x2d, 0x00, 0x34, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, + 0x12, 0x03, 0x2d, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x08, 0x00, 0x12, 0x04, 0x2e, + 0x02, 0x31, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x08, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2f, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x2f, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, + 0x12, 0x03, 0x30, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, + 0x30, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x17, + 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x30, 0x1e, 0x1f, 0x0a, + 0x44, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x33, 0x02, 0x16, 0x1a, 0x37, 0x20, 0x4d, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x20, 0x69, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x33, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x33, 0x09, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, 0x03, 0x33, 0x14, 0x15, 0x0a, + 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x36, 0x00, 0x38, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, + 0x00, 0x01, 0x12, 0x03, 0x36, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x37, 0x04, 0x6e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x37, + 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x37, 0x20, 0x3e, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x37, 0x49, 0x4f, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x37, 0x50, 0x6c, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.internal.fullnode.v1.serde.rs"); +include!("aptos.internal.fullnode.v1.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.serde.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.serde.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.serde.rs rename to protos/rust/src/pb/aptos.internal.fullnode.v1.serde.rs diff --git a/crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.tonic.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.tonic.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.internal.fullnode.v1.tonic.rs rename to protos/rust/src/pb/aptos.internal.fullnode.v1.tonic.rs diff --git a/crates/aptos-protos/src/pb/aptos.remote_executor.v1.rs b/protos/rust/src/pb/aptos.remote_executor.v1.rs similarity index 79% rename from crates/aptos-protos/src/pb/aptos.remote_executor.v1.rs rename to protos/rust/src/pb/aptos.remote_executor.v1.rs index 11011e96c5eea..9434a5085081a 100644 --- a/crates/aptos-protos/src/pb/aptos.remote_executor.v1.rs +++ b/protos/rust/src/pb/aptos.remote_executor.v1.rs @@ -15,7 +15,7 @@ pub struct Empty { } /// Encoded file descriptor set for the `aptos.remote_executor.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xf1, 0x04, 0x0a, 0x2a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x0a, 0xa1, 0x06, 0x0a, 0x2a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, @@ -32,7 +32,18 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4a, 0xcf, 0x02, 0x0a, 0x06, 0x12, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0xad, 0x01, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, + 0x03, 0x41, 0x52, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x17, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x19, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xcf, 0x02, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x12, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, diff --git a/crates/aptos-protos/src/pb/aptos.remote_executor.v1.serde.rs b/protos/rust/src/pb/aptos.remote_executor.v1.serde.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.remote_executor.v1.serde.rs rename to protos/rust/src/pb/aptos.remote_executor.v1.serde.rs diff --git a/crates/aptos-protos/src/pb/aptos.remote_executor.v1.tonic.rs b/protos/rust/src/pb/aptos.remote_executor.v1.tonic.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.remote_executor.v1.tonic.rs rename to protos/rust/src/pb/aptos.remote_executor.v1.tonic.rs diff --git a/crates/aptos-protos/src/pb/aptos.transaction.v1.rs b/protos/rust/src/pb/aptos.transaction.v1.rs similarity index 54% rename from crates/aptos-protos/src/pb/aptos.transaction.v1.rs rename to protos/rust/src/pb/aptos.transaction.v1.rs index d2a63e8ce4f98..71cc54f03f452 100644 --- a/crates/aptos-protos/src/pb/aptos.transaction.v1.rs +++ b/protos/rust/src/pb/aptos.transaction.v1.rs @@ -1131,7 +1131,7 @@ impl MoveAbility { } /// Encoded file descriptor set for the `aptos.transaction.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xf9, 0xf8, 0x01, 0x0a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, + 0x0a, 0x9a, 0xfa, 0x01, 0x0a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, @@ -1937,1192 +1937,1202 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4b, 0x45, 0x59, 0x10, - 0x04, 0x4a, 0x90, 0x94, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, 0x4e, - 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, - 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x1d, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, - 0x07, 0x00, 0x2e, 0x0a, 0xa3, 0x05, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x12, 0x00, 0x20, 0x01, - 0x1a, 0x96, 0x05, 0x20, 0x41, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x41, - 0x70, 0x74, 0x6f, 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6e, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x60, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x29, 0x0a, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x60, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x7a, 0x65, 0x72, - 0x6f, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, - 0x74, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x64, 0x65, 0x6e, - 0x6f, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x60, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x60, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2c, 0x0a, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x76, - 0x65, 0x72, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x61, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x60, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x30, 0x29, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x30, 0x60, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, - 0x12, 0x03, 0x12, 0x08, 0x0d, 0x0a, 0xde, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, - 0x15, 0x02, 0x2f, 0x1a, 0xd0, 0x01, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x04, 0x42, 0x9e, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x54, 0x58, 0xaa, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, + 0x56, 0x31, 0x4a, 0x90, 0x94, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, + 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, + 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x1d, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, + 0x03, 0x07, 0x00, 0x2e, 0x0a, 0xa3, 0x05, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x12, 0x00, 0x20, + 0x01, 0x1a, 0x96, 0x05, 0x20, 0x41, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, + 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x28, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x60, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x29, 0x0a, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x60, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x7a, 0x65, + 0x72, 0x6f, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x64, 0x65, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x60, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x60, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2c, 0x0a, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, + 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x61, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x60, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x30, 0x29, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x30, 0x60, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, + 0x01, 0x12, 0x03, 0x12, 0x08, 0x0d, 0x0a, 0xde, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x15, 0x02, 0x2f, 0x1a, 0xd0, 0x01, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x28, 0x6f, 0x72, + 0x20, 0x60, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x60, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x15, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x15, 0x21, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x15, 0x2d, + 0x2e, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x29, 0x1a, + 0x7b, 0x20, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x6c, 0x79, 0x2c, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x18, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x18, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, + 0x03, 0x18, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, + 0x18, 0x15, 0x27, 0x0a, 0x87, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x1c, 0x02, + 0x28, 0x1a, 0xf9, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x61, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x28, 0x62, 0x75, 0x74, 0x20, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x28, 0x6f, 0x72, 0x20, - 0x60, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x60, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x15, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x15, - 0x21, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x15, 0x2d, 0x2e, - 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x29, 0x1a, 0x7b, - 0x20, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x6c, 0x79, 0x2c, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x01, 0x01, 0x12, 0x03, 0x18, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, - 0x12, 0x03, 0x18, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, - 0x18, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x18, - 0x15, 0x27, 0x0a, 0x87, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x1c, 0x02, 0x28, - 0x1a, 0xf9, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, - 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x61, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x28, 0x62, 0x75, 0x74, 0x20, 0x65, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x02, 0x06, 0x12, 0x03, 0x1c, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, - 0x01, 0x12, 0x03, 0x1c, 0x17, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, - 0x03, 0x1c, 0x26, 0x27, 0x0a, 0x99, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x1f, - 0x02, 0x16, 0x1a, 0x8b, 0x01, 0x20, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x49, 0x44, 0x20, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x20, 0x75, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x74, 0x72, 0x79, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, - 0x27, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x1f, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x1f, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x1f, 0x14, 0x15, 0x0a, 0x8c, 0x04, 0x0a, 0x02, 0x04, - 0x01, 0x12, 0x04, 0x27, 0x00, 0x3e, 0x01, 0x1a, 0xff, 0x03, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x34, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x20, 0x2d, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x0a, 0x20, 0x2d, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, - 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, - 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x0a, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x61, - 0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x0a, 0x20, 0x2d, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2c, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x6b, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, - 0x12, 0x03, 0x27, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x28, - 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x28, 0x02, 0x20, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x28, 0x21, 0x2a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x28, 0x2d, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x29, 0x02, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x01, 0x05, 0x12, 0x03, 0x29, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x29, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x29, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x29, 0x15, - 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x29, 0x16, 0x28, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x2a, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, 0x2a, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x02, 0x03, 0x12, 0x03, 0x2a, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, - 0x03, 0x2b, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, 0x2b, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2b, 0x09, 0x0e, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x2b, 0x11, 0x12, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x03, 0x2b, 0x13, 0x27, 0x0a, 0x0d, 0x0a, 0x06, - 0x04, 0x01, 0x02, 0x03, 0x08, 0x06, 0x12, 0x03, 0x2b, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x01, 0x02, 0x04, 0x12, 0x03, 0x2c, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, - 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, - 0x03, 0x2c, 0x09, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x2c, - 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x03, 0x2c, 0x1a, 0x2e, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x2c, 0x1b, 0x2d, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, 0x2e, 0x02, 0x34, 0x03, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x07, 0x16, 0x0a, 0x0d, 0x0a, 0x06, 0x04, - 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, - 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x04, 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, - 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x2f, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, - 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x30, 0x04, 0x21, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, - 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x04, 0x1c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, - 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x30, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, - 0x00, 0x02, 0x02, 0x12, 0x03, 0x31, 0x04, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, - 0x02, 0x02, 0x01, 0x12, 0x03, 0x31, 0x04, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, - 0x02, 0x02, 0x02, 0x12, 0x03, 0x31, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, - 0x02, 0x03, 0x12, 0x03, 0x32, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, - 0x03, 0x01, 0x12, 0x03, 0x32, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, - 0x03, 0x02, 0x12, 0x03, 0x32, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, - 0x04, 0x12, 0x03, 0x33, 0x04, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x04, - 0x01, 0x12, 0x03, 0x33, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x04, - 0x02, 0x12, 0x03, 0x33, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x03, - 0x36, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, 0x12, 0x03, 0x36, 0x02, - 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x36, 0x12, 0x16, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x36, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x38, 0x02, 0x3d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x08, 0x00, 0x01, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, - 0x06, 0x12, 0x03, 0x39, 0x04, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x06, 0x12, - 0x03, 0x39, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x39, - 0x1d, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x39, 0x2e, 0x2f, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x3a, 0x04, 0x23, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x03, 0x3a, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x3a, 0x17, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x07, 0x03, 0x12, 0x03, 0x3a, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, - 0x03, 0x3b, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, 0x3b, - 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x3b, 0x1f, 0x2f, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x3b, 0x32, 0x33, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x03, 0x3c, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x09, 0x06, 0x12, 0x03, 0x3c, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x09, 0x01, 0x12, 0x03, 0x3c, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x03, - 0x12, 0x03, 0x3c, 0x1b, 0x1d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x40, 0x00, 0x47, - 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x40, 0x08, 0x20, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x41, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x00, 0x05, 0x12, 0x03, 0x41, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x41, 0x09, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x41, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x42, 0x02, - 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x42, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x09, 0x0e, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x42, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x42, 0x13, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, - 0x01, 0x08, 0x06, 0x12, 0x03, 0x42, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, - 0x12, 0x03, 0x43, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, 0x03, - 0x43, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x43, 0x0b, - 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, 0x11, 0x17, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x43, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x44, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x03, 0x05, 0x12, 0x03, 0x44, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, - 0x01, 0x12, 0x03, 0x44, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, - 0x03, 0x44, 0x26, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x45, 0x02, - 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x03, 0x45, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x45, 0x09, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x45, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x02, 0x02, 0x05, 0x12, 0x03, 0x46, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, - 0x04, 0x12, 0x03, 0x46, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, 0x12, - 0x03, 0x46, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, 0x46, - 0x12, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x46, 0x2c, 0x2d, - 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x49, 0x00, 0x4c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x03, 0x01, 0x12, 0x03, 0x49, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, - 0x12, 0x03, 0x4a, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, - 0x4a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4a, 0x0b, - 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x15, 0x16, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x4b, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x4b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, - 0x02, 0x01, 0x06, 0x12, 0x03, 0x4b, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, - 0x01, 0x12, 0x03, 0x4b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, - 0x03, 0x4b, 0x1a, 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4e, 0x00, 0x4f, 0x01, - 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4e, 0x08, 0x22, 0x0a, 0x0a, 0x0a, 0x02, - 0x04, 0x05, 0x12, 0x04, 0x51, 0x00, 0x54, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, - 0x03, 0x51, 0x08, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x52, 0x02, - 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x06, 0x12, 0x03, 0x52, 0x02, 0x18, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x52, 0x19, 0x20, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x52, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x05, 0x02, 0x01, 0x12, 0x03, 0x53, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, - 0x04, 0x12, 0x03, 0x53, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, - 0x03, 0x53, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x53, - 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x53, 0x1a, 0x1b, - 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x56, 0x00, 0x5c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x06, 0x01, 0x12, 0x03, 0x56, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, - 0x12, 0x03, 0x57, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x06, 0x12, 0x03, - 0x57, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x57, 0x0b, - 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x57, 0x11, 0x12, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x58, 0x02, 0x32, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x58, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x58, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x58, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x08, 0x12, - 0x03, 0x58, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x06, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, - 0x58, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x59, 0x02, 0x14, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x03, 0x59, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x59, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x59, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, - 0x02, 0x03, 0x12, 0x03, 0x5a, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x05, - 0x12, 0x03, 0x5a, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x03, - 0x5a, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x03, 0x5a, 0x14, - 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x04, 0x12, 0x03, 0x5b, 0x02, 0x12, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x05, 0x12, 0x03, 0x5b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x04, 0x01, 0x12, 0x03, 0x5b, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x04, 0x03, 0x12, 0x03, 0x5b, 0x10, 0x11, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, - 0x5e, 0x00, 0x68, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x5e, 0x08, 0x17, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x5f, 0x02, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x5f, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x5f, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x5f, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, - 0x03, 0x60, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x03, 0x60, - 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x60, 0x08, 0x19, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x60, 0x1c, 0x1d, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x61, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x02, 0x05, 0x12, 0x03, 0x61, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x02, 0x01, 0x12, 0x03, 0x61, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x03, - 0x12, 0x03, 0x61, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x03, 0x12, 0x03, 0x62, - 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x04, 0x12, 0x03, 0x62, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x05, 0x12, 0x03, 0x62, 0x0b, 0x10, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x01, 0x12, 0x03, 0x62, 0x11, 0x26, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x07, 0x02, 0x03, 0x03, 0x12, 0x03, 0x62, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, - 0x02, 0x04, 0x12, 0x03, 0x63, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x05, - 0x12, 0x03, 0x63, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x01, 0x12, 0x03, - 0x63, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x03, 0x12, 0x03, 0x63, 0x14, - 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x08, 0x12, 0x03, 0x63, 0x16, 0x2a, 0x0a, - 0x0d, 0x0a, 0x06, 0x04, 0x07, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x63, 0x17, 0x29, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x07, 0x02, 0x05, 0x12, 0x03, 0x64, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x05, 0x05, 0x12, 0x03, 0x64, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x05, 0x01, 0x12, 0x03, 0x64, 0x07, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x05, 0x03, - 0x12, 0x03, 0x64, 0x11, 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x06, 0x12, 0x03, 0x65, - 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x05, 0x12, 0x03, 0x65, 0x02, 0x08, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x01, 0x12, 0x03, 0x65, 0x09, 0x12, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x03, 0x12, 0x03, 0x65, 0x15, 0x16, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x07, 0x02, 0x07, 0x12, 0x03, 0x66, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x07, 0x05, 0x12, 0x03, 0x66, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, 0x01, - 0x12, 0x03, 0x66, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, 0x03, 0x12, 0x03, - 0x66, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x08, 0x12, 0x03, 0x67, 0x02, 0x26, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x04, 0x12, 0x03, 0x67, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x06, 0x12, 0x03, 0x67, 0x0b, 0x19, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x07, 0x02, 0x08, 0x01, 0x12, 0x03, 0x67, 0x1a, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, - 0x02, 0x08, 0x03, 0x12, 0x03, 0x67, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x04, - 0x6a, 0x00, 0x6d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x6a, 0x08, 0x10, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x6b, 0x02, 0x32, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x6b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, - 0x12, 0x03, 0x6b, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, 0x12, - 0x03, 0x6b, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x6c, 0x02, - 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x03, 0x6c, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6c, 0x09, 0x18, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6c, 0x1b, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, 0x04, - 0x09, 0x12, 0x04, 0x6f, 0x00, 0x77, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x03, - 0x6f, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x03, 0x70, 0x02, 0x14, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x03, 0x70, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x70, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x70, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, - 0x02, 0x01, 0x12, 0x03, 0x71, 0x02, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x05, - 0x12, 0x03, 0x71, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, 0x03, - 0x71, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x03, 0x71, 0x1b, - 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x08, 0x12, 0x03, 0x71, 0x1d, 0x31, 0x0a, - 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x71, 0x1e, 0x30, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x03, 0x72, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x02, 0x05, 0x12, 0x03, 0x72, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, - 0x02, 0x01, 0x12, 0x03, 0x72, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x03, - 0x12, 0x03, 0x72, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x08, 0x12, 0x03, - 0x72, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x02, 0x08, 0x06, 0x12, 0x03, 0x72, - 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x03, 0x73, 0x02, 0x31, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x05, 0x12, 0x03, 0x73, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, 0x12, 0x03, 0x73, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x03, 0x03, 0x12, 0x03, 0x73, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, - 0x03, 0x08, 0x12, 0x03, 0x73, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x03, 0x08, - 0x06, 0x12, 0x03, 0x73, 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x04, 0x12, 0x03, - 0x74, 0x02, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x06, 0x12, 0x03, 0x74, 0x02, - 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x01, 0x12, 0x03, 0x74, 0x21, 0x3a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x03, 0x12, 0x03, 0x74, 0x3d, 0x3e, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x09, 0x02, 0x05, 0x12, 0x03, 0x75, 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, - 0x02, 0x05, 0x06, 0x12, 0x03, 0x75, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x05, - 0x01, 0x12, 0x03, 0x75, 0x15, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x05, 0x03, 0x12, - 0x03, 0x75, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x06, 0x12, 0x03, 0x76, 0x02, - 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x06, 0x12, 0x03, 0x76, 0x02, 0x0b, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x01, 0x12, 0x03, 0x76, 0x0c, 0x15, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x09, 0x02, 0x06, 0x03, 0x12, 0x03, 0x76, 0x18, 0x19, 0x0a, 0x0b, 0x0a, 0x02, 0x04, - 0x0a, 0x12, 0x05, 0x79, 0x00, 0x86, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, - 0x03, 0x79, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x04, 0x00, 0x12, 0x04, 0x7b, 0x02, - 0x7f, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x04, 0x00, 0x01, 0x12, 0x03, 0x7b, 0x07, 0x13, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x7c, 0x04, 0x23, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x7c, 0x04, 0x1e, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x7c, 0x21, 0x22, 0x0a, - 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x28, 0x0a, 0x0e, - 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x23, 0x0a, 0x0e, - 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x7d, 0x26, 0x27, 0x0a, 0x0d, - 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x04, 0x28, 0x0a, 0x0e, 0x0a, - 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7e, 0x04, 0x23, 0x0a, 0x0e, 0x0a, - 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x26, 0x27, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0x81, 0x01, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0a, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x01, 0x0f, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x81, 0x01, 0x20, 0x21, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0a, 0x08, 0x00, - 0x12, 0x06, 0x82, 0x01, 0x02, 0x85, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x08, 0x00, - 0x01, 0x12, 0x04, 0x82, 0x01, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, 0x12, - 0x04, 0x83, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x06, 0x12, 0x04, - 0x83, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x83, - 0x01, 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, 0x01, - 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x02, 0x12, 0x04, 0x84, 0x01, 0x04, 0x28, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x06, 0x12, 0x04, 0x84, 0x01, 0x04, 0x12, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x01, 0x12, 0x04, 0x84, 0x01, 0x13, 0x23, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x03, 0x12, 0x04, 0x84, 0x01, 0x26, 0x27, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x0b, 0x12, 0x06, 0x88, 0x01, 0x00, 0x8b, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x0b, 0x01, 0x12, 0x04, 0x88, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, - 0x12, 0x04, 0x89, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, - 0x04, 0x89, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, - 0x89, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, 0x89, - 0x01, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x02, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x0f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x10, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x01, 0x19, 0x1a, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0x8d, 0x01, 0x00, 0x90, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x0c, 0x01, 0x12, 0x04, 0x8d, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, - 0x00, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x04, - 0x12, 0x04, 0x8e, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, 0x12, - 0x04, 0x8e, 0x01, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, - 0x8e, 0x01, 0x1a, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8e, - 0x01, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x02, - 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x04, 0x12, 0x04, 0x8f, 0x01, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8f, 0x01, 0x0b, 0x10, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x11, 0x17, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x0d, 0x12, 0x06, 0x92, 0x01, 0x00, 0xa8, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x0d, 0x01, 0x12, 0x04, 0x92, 0x01, 0x08, 0x16, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x04, 0x00, - 0x12, 0x06, 0x94, 0x01, 0x02, 0x9c, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x04, 0x00, - 0x01, 0x12, 0x04, 0x94, 0x01, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, - 0x00, 0x12, 0x04, 0x95, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, - 0x00, 0x01, 0x12, 0x04, 0x95, 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, - 0x02, 0x00, 0x02, 0x12, 0x04, 0x95, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, - 0x00, 0x02, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, - 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, - 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x96, 0x01, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x0d, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x0d, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0x97, 0x01, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x1b, 0x1c, 0x0a, 0x0e, 0x0a, - 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, - 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1a, 0x0a, 0x0f, - 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0x98, 0x01, 0x1d, 0x1e, 0x0a, - 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x99, 0x01, 0x04, 0x1a, 0x0a, - 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x99, 0x01, 0x04, 0x15, - 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x99, 0x01, 0x18, - 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x9a, 0x01, 0x04, - 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9a, 0x01, - 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0x9a, - 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x12, 0x04, 0x9b, - 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x04, - 0x9b, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x02, 0x12, - 0x04, 0x9b, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0x9e, - 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9e, 0x01, - 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9e, 0x01, 0x07, - 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9e, 0x01, 0x0e, 0x0f, - 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x08, 0x00, 0x12, 0x06, 0xa0, 0x01, 0x02, 0xa7, 0x01, 0x03, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x08, 0x0e, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x23, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0d, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x10, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x11, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa1, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, - 0x02, 0x02, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, - 0x06, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xa2, 0x01, 0x13, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xa2, 0x01, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x03, 0x12, 0x04, 0xa3, - 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa3, 0x01, - 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x14, - 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x28, 0x29, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x04, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x21, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x0f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x10, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0d, 0x02, 0x05, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, - 0x05, 0x06, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x05, - 0x01, 0x12, 0x04, 0xa5, 0x01, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x05, 0x03, - 0x12, 0x04, 0xa5, 0x01, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x06, 0x12, 0x04, - 0xa6, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x06, 0x12, 0x04, 0xa6, - 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x01, 0x12, 0x04, 0xa6, 0x01, - 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x03, 0x12, 0x04, 0xa6, 0x01, 0x26, - 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0xaa, 0x01, 0x00, 0xae, 0x01, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xab, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, - 0x02, 0x00, 0x05, 0x12, 0x04, 0xab, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xab, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xab, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, - 0x04, 0xac, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, 0x04, - 0xac, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xac, - 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xac, 0x01, - 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x02, 0x12, 0x04, 0xad, 0x01, 0x02, 0x1a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x06, 0x12, 0x04, 0xad, 0x01, 0x02, 0x0e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xad, 0x01, 0x0f, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xad, 0x01, 0x18, 0x19, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x0f, 0x12, 0x06, 0xb0, 0x01, 0x00, 0xb5, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x0f, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, - 0x12, 0x04, 0xb1, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, 0x12, - 0x04, 0xb1, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xb1, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb1, - 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x02, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x07, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x08, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x19, 0x1a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0f, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, - 0x02, 0x02, 0x03, 0x12, 0x04, 0xb3, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, - 0x03, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x05, - 0x12, 0x04, 0xb4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xb4, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x03, 0x12, 0x04, - 0xb4, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0xb7, 0x01, 0x00, 0xbc, - 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x08, 0x17, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, - 0x02, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, - 0x05, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, - 0x12, 0x04, 0xb9, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, - 0x04, 0xb9, 0x01, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, 0xba, - 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x05, 0x12, 0x04, 0xba, 0x01, - 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0xba, 0x01, 0x09, - 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0xba, 0x01, 0x0f, 0x10, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x10, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x12, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x10, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x11, 0x12, 0x06, 0xbe, 0x01, 0x00, 0xc1, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, - 0x12, 0x04, 0xbe, 0x01, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, - 0xbf, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbf, - 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbf, 0x01, - 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbf, 0x01, 0x0f, - 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x08, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc0, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x12, 0x12, 0x06, 0xc3, 0x01, 0x00, 0xc7, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, - 0x01, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, 0x12, - 0x04, 0xc4, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xc4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc4, - 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc4, 0x01, - 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x1b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x07, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x08, 0x16, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x12, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, - 0x02, 0x03, 0x12, 0x04, 0xc6, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, 0x12, 0x06, - 0xc9, 0x01, 0x00, 0xcf, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, 0xc9, - 0x01, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xca, 0x01, 0x02, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x05, 0x12, 0x04, 0xca, 0x01, 0x02, 0x08, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x01, 0x09, 0x10, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x01, 0x13, 0x14, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x13, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xcb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, - 0x02, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x06, - 0x12, 0x04, 0xcc, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xcc, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xcc, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, 0xcd, 0x01, - 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x05, 0x12, 0x04, 0xcd, 0x01, 0x02, - 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x09, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, 0x12, 0x04, 0xcd, 0x01, 0x14, 0x15, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x04, 0x12, 0x04, 0xce, 0x01, 0x02, 0x12, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x13, 0x02, 0x04, 0x05, 0x12, 0x04, 0xce, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x13, 0x02, 0x04, 0x01, 0x12, 0x04, 0xce, 0x01, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x13, 0x02, 0x04, 0x03, 0x12, 0x04, 0xce, 0x01, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x14, - 0x12, 0x06, 0xd1, 0x01, 0x00, 0xd6, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, 0x12, - 0x04, 0xd1, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, 0xd2, - 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd2, 0x01, - 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd2, 0x01, 0x09, - 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x0f, 0x10, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x16, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd3, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x14, 0x02, 0x02, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, - 0x02, 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xd4, 0x01, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x03, - 0x12, 0x04, 0xd4, 0x01, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, 0x04, - 0xd5, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x05, 0x12, 0x04, 0xd5, - 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd5, 0x01, - 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd5, 0x01, 0x16, - 0x17, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd8, 0x01, 0x00, 0xdd, 0x01, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xd8, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, - 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xd9, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xd9, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, - 0x04, 0xda, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, - 0xda, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, - 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x01, - 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x08, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x09, 0x0c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x0f, 0x10, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x15, 0x02, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x15, 0x02, 0x03, 0x06, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, - 0x02, 0x03, 0x01, 0x12, 0x04, 0xdc, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, - 0x03, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, - 0xdf, 0x01, 0x00, 0xf2, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0xdf, - 0x01, 0x08, 0x1a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, 0x04, 0x00, 0x12, 0x06, 0xe0, 0x01, 0x02, - 0xe7, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x04, 0x00, 0x01, 0x12, 0x04, 0xe0, 0x01, - 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe1, 0x01, - 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe1, - 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, - 0xe1, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, - 0xe2, 0x01, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xe2, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x02, - 0x12, 0x04, 0xe2, 0x01, 0x22, 0x23, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x02, - 0x12, 0x04, 0xe3, 0x01, 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xe3, 0x01, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, - 0x02, 0x02, 0x12, 0x04, 0xe3, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, - 0x02, 0x03, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x23, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, - 0x02, 0x03, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, - 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xe4, 0x01, 0x21, 0x22, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, - 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, - 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x16, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xe5, 0x01, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x06, - 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, - 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xe6, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x16, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x16, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xe9, 0x01, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, 0x08, - 0x00, 0x12, 0x06, 0xeb, 0x01, 0x02, 0xf1, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x08, - 0x00, 0x01, 0x12, 0x04, 0xeb, 0x01, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x01, - 0x12, 0x04, 0xec, 0x01, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x06, 0x12, - 0x04, 0xec, 0x01, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xec, 0x01, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, - 0x01, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xed, 0x01, 0x04, - 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x06, 0x12, 0x04, 0xed, 0x01, 0x04, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x01, 0x12, 0x04, 0xed, 0x01, 0x12, 0x20, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x03, 0x12, 0x04, 0xed, 0x01, 0x23, 0x24, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x16, 0x02, 0x03, 0x12, 0x04, 0xee, 0x01, 0x04, 0x32, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x16, 0x02, 0x03, 0x06, 0x12, 0x04, 0xee, 0x01, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x16, 0x02, 0x03, 0x01, 0x12, 0x04, 0xee, 0x01, 0x18, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, - 0x02, 0x03, 0x03, 0x12, 0x04, 0xee, 0x01, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, - 0x04, 0x12, 0x04, 0xef, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x06, - 0x12, 0x04, 0xef, 0x01, 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x01, 0x12, - 0x04, 0xef, 0x01, 0x14, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x03, 0x12, 0x04, - 0xef, 0x01, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x05, 0x12, 0x04, 0xf0, 0x01, - 0x04, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x06, 0x12, 0x04, 0xf0, 0x01, 0x04, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf0, 0x01, 0x14, 0x24, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf0, 0x01, 0x27, 0x28, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xf4, 0x01, 0x00, 0xf9, 0x01, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xf4, 0x01, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, - 0x02, 0x00, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, - 0x06, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xf5, 0x01, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, 0x12, - 0x04, 0xf5, 0x01, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, 0xf6, - 0x01, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x04, 0x12, 0x04, 0xf6, 0x01, - 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x06, 0x12, 0x04, 0xf6, 0x01, 0x0b, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf6, 0x01, 0x14, 0x22, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, 0x01, 0x25, 0x26, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x20, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x17, 0x02, 0x02, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf7, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x17, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf7, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, - 0x02, 0x02, 0x03, 0x12, 0x04, 0xf7, 0x01, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, - 0x03, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x05, - 0x12, 0x04, 0xf8, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xf8, 0x01, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, 0x04, - 0xf8, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xfb, 0x01, 0x00, 0xfe, - 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xfb, 0x01, 0x08, 0x1a, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x18, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfc, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x18, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfc, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, - 0x02, 0x01, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, - 0x06, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x01, - 0x12, 0x04, 0xfd, 0x01, 0x0f, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x03, 0x12, - 0x04, 0xfd, 0x01, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0x80, 0x02, 0x00, - 0x84, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0x80, 0x02, 0x08, 0x15, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0x81, 0x02, 0x02, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x02, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x19, 0x02, 0x01, 0x12, 0x04, 0x82, 0x02, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, - 0x01, 0x04, 0x12, 0x04, 0x82, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, - 0x06, 0x12, 0x04, 0x82, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, - 0x12, 0x04, 0x82, 0x02, 0x14, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, - 0x04, 0x82, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, 0x04, 0x83, - 0x02, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x04, 0x12, 0x04, 0x83, 0x02, - 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, 0x12, 0x04, 0x83, 0x02, 0x0b, - 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, 0x12, 0x04, 0x83, 0x02, 0x12, 0x1b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, 0x02, 0x1e, 0x1f, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, 0x86, 0x02, 0x00, 0x89, 0x02, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0x86, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, - 0x02, 0x00, 0x12, 0x04, 0x87, 0x02, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, - 0x05, 0x12, 0x04, 0x87, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x01, - 0x12, 0x04, 0x87, 0x02, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, 0x12, - 0x04, 0x87, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, 0x88, - 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x04, 0x12, 0x04, 0x88, 0x02, - 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x06, 0x12, 0x04, 0x88, 0x02, 0x0b, - 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, 0x02, 0x26, 0x39, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x02, 0x3c, 0x3d, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0x8b, 0x02, 0x00, 0x96, 0x02, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x08, 0x22, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1b, - 0x04, 0x00, 0x12, 0x06, 0x8c, 0x02, 0x02, 0x8f, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x04, 0x00, 0x01, 0x12, 0x04, 0x8c, 0x02, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1b, 0x04, - 0x00, 0x02, 0x00, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1b, 0x04, - 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1b, - 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x8d, 0x02, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x1b, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x1b, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x8e, 0x02, 0x22, 0x23, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0x91, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x00, 0x06, 0x12, 0x04, 0x91, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x02, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x91, 0x02, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1b, 0x08, 0x00, - 0x12, 0x06, 0x93, 0x02, 0x02, 0x95, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x08, 0x00, - 0x01, 0x12, 0x04, 0x93, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, - 0x04, 0x94, 0x02, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x06, 0x12, 0x04, - 0x94, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0x94, - 0x02, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x94, 0x02, - 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0x98, 0x02, 0x00, 0x9a, 0x02, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0x99, 0x02, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1c, 0x02, 0x00, 0x04, 0x12, 0x04, 0x99, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, - 0x02, 0x00, 0x06, 0x12, 0x04, 0x99, 0x02, 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, - 0x00, 0x01, 0x12, 0x04, 0x99, 0x02, 0x1e, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, - 0x03, 0x12, 0x04, 0x99, 0x02, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0x9c, - 0x02, 0x00, 0x9f, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0x9c, 0x02, - 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x02, 0x02, 0x15, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9d, 0x02, 0x02, 0x07, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x02, 0x08, 0x10, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1d, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, - 0x02, 0x01, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x0d, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, - 0x01, 0x03, 0x12, 0x04, 0x9e, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x06, - 0xa1, 0x02, 0x00, 0xa7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xa1, - 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0xa2, 0x02, 0x02, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa2, 0x02, 0x02, 0x08, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x09, 0x10, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa2, 0x02, 0x13, 0x14, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xa3, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, - 0x02, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x04, - 0x12, 0x04, 0xa4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x06, 0x12, - 0x04, 0xa4, 0x02, 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x01, 0x12, 0x04, - 0xa4, 0x02, 0x18, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa4, - 0x02, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x03, 0x12, 0x04, 0xa5, 0x02, 0x02, - 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa5, 0x02, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa5, 0x02, 0x0b, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa5, 0x02, 0x18, 0x29, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa5, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x1e, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1e, 0x02, 0x04, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, - 0x02, 0x04, 0x06, 0x12, 0x04, 0xa6, 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, - 0x04, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x04, - 0x03, 0x12, 0x04, 0xa6, 0x02, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, 0xa8, - 0x02, 0x00, 0xb5, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xa8, 0x02, - 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1f, 0x04, 0x00, 0x12, 0x06, 0xa9, 0x02, 0x02, 0xae, - 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x02, 0x07, - 0x11, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xaa, 0x02, 0x04, - 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaa, 0x02, - 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xaa, - 0x02, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xab, - 0x02, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xab, 0x02, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, - 0x04, 0xab, 0x02, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, 0x12, - 0x04, 0xac, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xac, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, - 0x02, 0x12, 0x04, 0xac, 0x02, 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, - 0x03, 0x12, 0x04, 0xad, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xad, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, - 0x02, 0x03, 0x02, 0x12, 0x04, 0xad, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, - 0x00, 0x12, 0x04, 0xaf, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x05, - 0x12, 0x04, 0xaf, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xaf, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xaf, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, 0x12, 0x04, 0xb0, 0x02, - 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb0, 0x02, 0x02, - 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x1a, 0x24, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x27, 0x28, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1f, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x02, 0x07, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, - 0x02, 0x03, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, - 0x04, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x06, - 0x12, 0x04, 0xb2, 0x02, 0x0b, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xb2, 0x02, 0x28, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x03, 0x12, 0x04, - 0xb2, 0x02, 0x3e, 0x3f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x04, 0x12, 0x04, 0xb3, 0x02, - 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x04, 0x12, 0x04, 0xb3, 0x02, 0x02, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb3, 0x02, 0x0b, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb3, 0x02, 0x14, 0x1a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb3, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x05, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1f, 0x02, 0x05, 0x04, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1f, 0x02, 0x05, 0x06, 0x12, 0x04, 0xb4, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, - 0x02, 0x05, 0x01, 0x12, 0x04, 0xb4, 0x02, 0x14, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, - 0x05, 0x03, 0x12, 0x04, 0xb4, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x20, 0x12, 0x06, - 0xb7, 0x02, 0x00, 0xbd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, 0x04, 0xb7, - 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x02, 0x02, - 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x02, 0x02, 0x08, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x02, 0x09, 0x0d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x02, 0x10, 0x11, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x20, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x20, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x20, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x07, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xb9, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, - 0x02, 0x12, 0x04, 0xba, 0x02, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x04, - 0x12, 0x04, 0xba, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x06, 0x12, - 0x04, 0xba, 0x02, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x01, 0x12, 0x04, - 0xba, 0x02, 0x17, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x03, 0x12, 0x04, 0xba, - 0x02, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x02, - 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x04, 0x12, 0x04, 0xbb, 0x02, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x02, 0x0b, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x26, 0x39, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x3c, 0x3d, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x20, 0x02, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x20, 0x02, 0x04, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, - 0x02, 0x04, 0x06, 0x12, 0x04, 0xbc, 0x02, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, - 0x04, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x1b, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x04, - 0x03, 0x12, 0x04, 0xbc, 0x02, 0x24, 0x25, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x21, 0x12, 0x06, 0xbf, - 0x02, 0x00, 0xc2, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xbf, 0x02, - 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x27, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x16, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x17, 0x22, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, - 0x02, 0x01, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, - 0x01, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x07, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, - 0x03, 0x12, 0x04, 0xc1, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x22, 0x12, 0x06, 0xc4, - 0x02, 0x00, 0xc7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, 0xc4, 0x02, - 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x08, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc5, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x22, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x22, 0x02, 0x01, 0x06, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xc6, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x23, 0x12, 0x06, - 0xc9, 0x02, 0x00, 0xcb, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, 0xc9, - 0x02, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0xca, 0x02, 0x02, - 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, 0xca, 0x02, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x06, 0x12, 0x04, 0xca, 0x02, 0x0b, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x02, 0x17, 0x22, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, - 0x02, 0x05, 0x00, 0x12, 0x06, 0xcd, 0x02, 0x00, 0xdd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, - 0x00, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x05, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, - 0x12, 0x04, 0xce, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xce, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, - 0xce, 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x04, 0xcf, 0x02, - 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x02, 0x02, - 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xcf, 0x02, 0x14, 0x15, - 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x14, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, - 0x05, 0x00, 0x02, 0x03, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x03, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x03, 0x02, 0x12, 0x04, 0xd1, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, - 0x12, 0x04, 0xd2, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, - 0x04, 0xd2, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, - 0xd2, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x04, 0xd3, 0x02, - 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd3, 0x02, 0x02, - 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xd3, 0x02, 0x13, 0x14, - 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x16, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x04, 0xd4, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x04, - 0x05, 0x00, 0x02, 0x07, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x07, 0x01, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x07, 0x02, 0x12, 0x04, 0xd5, 0x02, 0x14, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, - 0x12, 0x04, 0xd6, 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, - 0x04, 0xd6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x04, - 0xd6, 0x02, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x04, 0xd7, 0x02, - 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd7, 0x02, 0x02, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x04, 0xd7, 0x02, 0x16, 0x17, - 0x0a, 0x2b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x18, 0x22, 0x1d, - 0x20, 0x60, 0x7b, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, 0x4d, - 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x04, 0xd8, 0x02, 0x16, 0x17, 0x0a, 0x22, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x0b, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x18, 0x22, 0x14, 0x20, 0x60, 0x28, 0x4d, 0x6f, - 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, 0x67, 0x29, 0x60, 0x2c, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x13, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x04, 0xd9, 0x02, 0x16, 0x17, 0x0a, 0x22, 0x0a, - 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x04, 0xda, 0x02, 0x02, 0x24, 0x22, 0x14, 0x20, 0x60, 0x7b, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x31, 0x36, 0x20, 0x7d, 0x60, 0x60, 0x2c, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xda, 0x02, 0x02, 0x1f, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0xda, 0x02, 0x22, 0x23, 0x0a, - 0x37, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x1c, 0x22, 0x29, 0x20, - 0x60, 0x7b, 0x20, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, - 0x2c, 0x20, 0x74, 0x6f, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, - 0x01, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, 0x02, - 0x12, 0x04, 0xdb, 0x02, 0x19, 0x1b, 0x0a, 0x1b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0e, 0x12, 0x04, - 0xdc, 0x02, 0x02, 0x1d, 0x22, 0x0d, 0x20, 0x60, 0x28, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x29, - 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xdc, 0x02, - 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x02, 0x12, 0x04, 0xdc, 0x02, 0x1a, - 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x24, 0x12, 0x06, 0xdf, 0x02, 0x00, 0xee, 0x02, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, 0xdf, 0x02, 0x08, 0x10, 0x0a, 0x0e, 0x0a, 0x04, - 0x04, 0x24, 0x03, 0x00, 0x12, 0x06, 0xe1, 0x02, 0x02, 0xe4, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x24, 0x03, 0x00, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x0a, 0x17, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x24, 0x03, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x24, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x08, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe2, 0x02, 0x09, 0x10, 0x0a, 0x0f, 0x0a, - 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe2, 0x02, 0x13, 0x14, 0x0a, 0x0e, - 0x0a, 0x06, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x14, 0x0a, 0x0f, - 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x0c, 0x0a, - 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x0d, 0x0f, - 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe3, 0x02, 0x12, - 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x00, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x0b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe6, 0x02, 0x0c, 0x10, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x24, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe6, 0x02, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x04, - 0x04, 0x24, 0x08, 0x00, 0x12, 0x06, 0xe7, 0x02, 0x02, 0xed, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x24, 0x08, 0x00, 0x01, 0x12, 0x04, 0xe7, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x24, 0x02, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, - 0x01, 0x06, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xe8, 0x02, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xe8, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x02, 0x12, 0x04, - 0xe9, 0x02, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x06, 0x12, 0x04, 0xe9, - 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe9, 0x02, - 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x03, 0x12, 0x04, 0xe9, 0x02, 0x1b, - 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x03, 0x12, 0x04, 0xea, 0x02, 0x04, 0x28, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x05, 0x12, 0x04, 0xea, 0x02, 0x04, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x01, 0x12, 0x04, 0xea, 0x02, 0x0b, 0x23, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x24, 0x02, 0x03, 0x03, 0x12, 0x04, 0xea, 0x02, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x24, 0x02, 0x04, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, - 0x02, 0x04, 0x06, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, - 0x04, 0x01, 0x12, 0x04, 0xeb, 0x02, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x04, - 0x03, 0x12, 0x04, 0xeb, 0x02, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x05, 0x12, - 0x04, 0xec, 0x02, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x05, 0x12, 0x04, - 0xec, 0x02, 0x04, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x01, 0x12, 0x04, 0xec, - 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x03, 0x12, 0x04, 0xec, 0x02, - 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0xf0, 0x02, 0x00, 0xf6, 0x02, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0xf0, 0x02, 0x05, 0x10, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, - 0x02, 0x00, 0x02, 0x12, 0x04, 0xf1, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, - 0x01, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, - 0x12, 0x04, 0xf2, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, - 0x04, 0xf2, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, 0xf3, - 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf3, 0x02, - 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0xf3, 0x02, 0x16, - 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x19, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x14, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xf4, 0x02, 0x17, 0x18, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, - 0x02, 0x04, 0x02, 0x12, 0x04, 0xf5, 0x02, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x25, 0x12, - 0x06, 0xf8, 0x02, 0x00, 0xfa, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x01, 0x12, 0x04, - 0xf8, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0xf9, 0x02, - 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x06, 0x12, 0x04, 0xf9, 0x02, 0x02, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x02, 0x0b, 0x14, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x02, 0x17, 0x18, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0xfc, 0x02, 0x00, 0xff, 0x02, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x26, 0x01, 0x12, 0x04, 0xfc, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, - 0x02, 0x00, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, - 0x06, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xfd, 0x02, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x03, 0x12, - 0x04, 0xfd, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, 0x01, 0x12, 0x04, 0xfe, - 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfe, 0x02, - 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfe, 0x02, 0x09, - 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x10, 0x11, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x27, 0x12, 0x06, 0x81, 0x03, 0x00, 0x84, 0x03, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, 0x81, 0x03, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x27, 0x02, 0x00, 0x12, 0x04, 0x82, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, - 0x00, 0x05, 0x12, 0x04, 0x82, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, - 0x01, 0x12, 0x04, 0x82, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, 0x03, - 0x12, 0x04, 0x82, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x01, 0x12, 0x04, - 0x83, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x05, 0x12, 0x04, 0x83, - 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x01, 0x12, 0x04, 0x83, 0x03, - 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, 0x03, 0x10, - 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x28, 0x12, 0x06, 0x86, 0x03, 0x00, 0x8b, 0x03, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x28, 0x01, 0x12, 0x04, 0x86, 0x03, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0x87, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, - 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, - 0x00, 0x01, 0x12, 0x04, 0x87, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, - 0x03, 0x12, 0x04, 0x87, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, 0x12, - 0x04, 0x88, 0x03, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, 0x04, - 0x88, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, - 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x03, - 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x02, 0x12, 0x04, 0x89, 0x03, 0x02, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x05, 0x12, 0x04, 0x89, 0x03, 0x02, 0x08, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x01, 0x12, 0x04, 0x89, 0x03, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x03, 0x12, 0x04, 0x89, 0x03, 0x10, 0x11, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x28, 0x02, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x28, 0x02, 0x03, 0x04, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, - 0x02, 0x03, 0x06, 0x12, 0x04, 0x8a, 0x03, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, - 0x03, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x14, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x03, - 0x03, 0x12, 0x04, 0x8a, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x29, 0x12, 0x06, 0x8d, - 0x03, 0x00, 0xa0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, 0x01, 0x12, 0x04, 0x8d, 0x03, - 0x08, 0x11, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x04, 0x00, 0x12, 0x06, 0x8f, 0x03, 0x02, 0x96, - 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x03, 0x07, - 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0x90, 0x03, 0x04, - 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, 0x03, - 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x90, - 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x91, - 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, - 0x91, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, - 0x04, 0x91, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, 0x12, - 0x04, 0x92, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, 0x01, - 0x12, 0x04, 0x92, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, - 0x02, 0x12, 0x04, 0x92, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, - 0x03, 0x12, 0x04, 0x93, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, - 0x03, 0x01, 0x12, 0x04, 0x93, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, - 0x02, 0x03, 0x02, 0x12, 0x04, 0x93, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, - 0x00, 0x02, 0x04, 0x12, 0x04, 0x94, 0x03, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, - 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x94, 0x03, 0x04, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, - 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x94, 0x03, 0x15, 0x16, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x29, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x95, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x29, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x95, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0x95, 0x03, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x04, 0x98, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x29, 0x02, 0x00, 0x06, 0x12, 0x04, 0x98, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x98, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x98, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x08, 0x00, - 0x12, 0x06, 0x99, 0x03, 0x02, 0x9f, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x08, 0x00, - 0x01, 0x12, 0x04, 0x99, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x01, 0x12, - 0x04, 0x9a, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x06, 0x12, 0x04, - 0x9a, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, - 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x03, - 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x02, 0x12, 0x04, 0x9b, 0x03, 0x04, 0x2c, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9b, 0x03, 0x04, 0x19, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9b, 0x03, 0x1a, 0x27, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9b, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x29, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x29, 0x02, 0x03, 0x06, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, - 0x02, 0x03, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x18, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, - 0x03, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x04, - 0x12, 0x04, 0x9d, 0x03, 0x04, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x06, 0x12, - 0x04, 0x9d, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x01, 0x12, 0x04, - 0x9d, 0x03, 0x16, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x03, 0x12, 0x04, 0x9d, - 0x03, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x05, 0x12, 0x04, 0x9e, 0x03, 0x04, - 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x06, 0x12, 0x04, 0x9e, 0x03, 0x04, 0x10, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9e, 0x03, 0x11, 0x1e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x03, 0x12, 0x04, 0x9e, 0x03, 0x21, 0x22, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xa2, 0x03, 0x00, 0xa5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x2a, 0x01, 0x12, 0x04, 0xa2, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, - 0x00, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x05, - 0x12, 0x04, 0xa3, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xa3, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xa3, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x03, - 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x03, 0x02, - 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x08, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x14, 0x15, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, 0xa7, 0x03, 0x00, 0xac, 0x03, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xa7, 0x03, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, - 0x02, 0x00, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, - 0x04, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x05, - 0x12, 0x04, 0xa8, 0x03, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xa8, 0x03, 0x11, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xa8, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x04, 0xa9, 0x03, - 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa9, 0x03, 0x02, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa9, 0x03, 0x0b, 0x10, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa9, 0x03, 0x11, 0x1b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa9, 0x03, 0x1e, 0x1f, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x02, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2b, 0x02, 0x02, 0x05, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, - 0x02, 0x02, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, - 0x03, 0x12, 0x04, 0xab, 0x03, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x04, - 0x12, 0x04, 0xab, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x05, 0x12, - 0x04, 0xab, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x01, 0x12, 0x04, - 0xab, 0x03, 0x12, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xab, - 0x03, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xae, 0x03, 0x00, 0xb2, 0x03, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, 0x12, 0x04, 0xae, 0x03, 0x08, 0x1b, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2c, 0x02, 0x00, 0x06, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaf, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, - 0x01, 0x12, 0x04, 0xb0, 0x03, 0x02, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x04, - 0x12, 0x04, 0xb0, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xb0, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xb0, 0x03, 0x12, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, - 0x03, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x03, 0x02, - 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb1, 0x03, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb1, 0x03, 0x0b, 0x1b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x03, 0x1c, 0x2d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x03, 0x30, 0x31, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x2d, 0x12, 0x06, 0xb4, 0x03, 0x00, 0xba, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x2d, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x00, - 0x12, 0x04, 0xb5, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x06, 0x12, - 0x04, 0xb5, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xb5, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb5, - 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x02, - 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x04, 0x12, 0x04, 0xb6, 0x03, 0x02, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb6, 0x03, 0x0b, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x12, 0x2c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb6, 0x03, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x2d, 0x02, 0x02, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2d, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, - 0x02, 0x02, 0x06, 0x12, 0x04, 0xb7, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x1c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xb7, 0x03, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x03, 0x12, - 0x04, 0xb8, 0x03, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x05, 0x12, 0x04, - 0xb8, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x01, 0x12, 0x04, 0xb8, - 0x03, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb8, 0x03, - 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x28, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x12, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x13, 0x23, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb9, 0x03, 0x26, 0x27, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x2e, 0x12, 0x06, 0xbc, 0x03, 0x00, 0xc5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x2e, 0x01, 0x12, 0x04, 0xbc, 0x03, 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2e, 0x04, 0x00, - 0x12, 0x06, 0xbd, 0x03, 0x02, 0xc1, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x04, 0x00, - 0x01, 0x12, 0x04, 0xbd, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, 0x04, 0x00, 0x02, - 0x00, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, 0x00, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, 0x00, - 0x02, 0x00, 0x02, 0x12, 0x04, 0xbe, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, 0x04, - 0x00, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, - 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, - 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xbf, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x2e, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x2e, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x2e, 0x02, 0x00, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xc3, 0x03, 0x0e, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x01, - 0x12, 0x04, 0xc4, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xc4, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xc4, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc4, - 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0xc7, 0x03, 0x00, 0xd0, 0x03, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0xc7, 0x03, 0x08, 0x14, 0x0a, 0x0e, - 0x0a, 0x04, 0x04, 0x2f, 0x04, 0x00, 0x12, 0x06, 0xc8, 0x03, 0x02, 0xcc, 0x03, 0x03, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, - 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, - 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x14, 0x0a, 0x0f, - 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xc9, 0x03, 0x17, 0x18, 0x0a, - 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, 0x15, 0x0a, - 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, 0x10, - 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xca, 0x03, 0x13, - 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xcb, 0x03, 0x04, - 0x1d, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xcb, 0x03, - 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xcb, - 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0xce, 0x03, 0x02, - 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xce, 0x03, 0x02, 0x06, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x03, 0x07, 0x0b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xce, 0x03, 0x0e, 0x0f, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x30, 0x12, - 0x06, 0xd2, 0x03, 0x00, 0xd5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x30, 0x01, 0x12, 0x04, - 0xd2, 0x03, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, 0x04, 0xd3, 0x03, - 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x06, 0x12, 0x04, 0xd3, 0x03, 0x02, - 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd3, 0x03, 0x0f, 0x19, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd3, 0x03, 0x1c, 0x1d, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x30, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x30, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x30, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd4, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x31, - 0x12, 0x06, 0xd7, 0x03, 0x00, 0xda, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, 0x12, - 0x04, 0xd7, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x00, 0x12, 0x04, 0xd8, - 0x03, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd8, 0x03, - 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd8, 0x03, 0x09, - 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd8, 0x03, 0x11, 0x12, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x1d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x31, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x31, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x32, 0x12, 0x06, 0xdc, 0x03, 0x00, 0xe0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x32, 0x01, - 0x12, 0x04, 0xdc, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, 0x12, 0x04, - 0xdd, 0x03, 0x02, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x04, 0x12, 0x04, 0xdd, - 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, 0x04, 0xdd, 0x03, - 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdd, 0x03, 0x18, - 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdd, 0x03, 0x26, 0x27, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x01, 0x12, 0x04, 0xde, 0x03, 0x02, 0x2b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x04, 0x12, 0x04, 0xde, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x32, 0x02, 0x01, 0x06, 0x12, 0x04, 0xde, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x32, 0x02, 0x01, 0x01, 0x12, 0x04, 0xde, 0x03, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x32, 0x02, 0x01, 0x03, 0x12, 0x04, 0xde, 0x03, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, - 0x02, 0x02, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, - 0x05, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xdf, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xdf, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xe2, 0x03, 0x00, - 0xe4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x33, 0x01, 0x12, 0x04, 0xe2, 0x03, 0x08, 0x14, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x00, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe3, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe3, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x34, 0x12, 0x06, 0xe6, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x34, 0x01, - 0x12, 0x04, 0xe6, 0x03, 0x08, 0x18, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x34, 0x04, 0x00, 0x12, 0x06, - 0xe7, 0x03, 0x02, 0xed, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x04, 0x00, 0x01, 0x12, - 0x04, 0xe7, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, 0x12, - 0x04, 0xe8, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xe8, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, - 0x02, 0x12, 0x04, 0xe8, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, - 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, - 0x01, 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, - 0x02, 0x01, 0x02, 0x12, 0x04, 0xe9, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, - 0x00, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, - 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xea, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, - 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x34, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, - 0x34, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x13, 0x0a, 0x0f, 0x0a, 0x07, - 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xeb, 0x03, 0x16, 0x17, 0x0a, 0x0e, 0x0a, - 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xec, 0x03, 0x04, 0x17, 0x0a, 0x0f, 0x0a, - 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xec, 0x03, 0x04, 0x12, 0x0a, 0x0f, - 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xec, 0x03, 0x15, 0x16, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x00, 0x12, 0x04, 0xef, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x34, 0x02, 0x00, 0x06, 0x12, 0x04, 0xef, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x34, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x34, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x34, - 0x08, 0x00, 0x12, 0x06, 0xf0, 0x03, 0x02, 0xf5, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, - 0x08, 0x00, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, - 0x01, 0x12, 0x04, 0xf1, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x06, - 0x12, 0x04, 0xf1, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xf1, 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xf1, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0xf2, 0x03, - 0x04, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x06, 0x12, 0x04, 0xf2, 0x03, 0x04, - 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf2, 0x03, 0x1a, 0x27, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf2, 0x03, 0x2a, 0x2b, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x30, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x34, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x34, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf3, 0x03, 0x17, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x34, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, - 0x02, 0x04, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, - 0x06, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x01, - 0x12, 0x04, 0xf4, 0x03, 0x16, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x03, 0x12, - 0x04, 0xf4, 0x03, 0x2c, 0x2d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x1c, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x1c, 0x17, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x1c, 0x26, 0x27, 0x0a, 0x99, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, + 0x1f, 0x02, 0x16, 0x1a, 0x8b, 0x01, 0x20, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x49, 0x44, 0x20, + 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x20, 0x75, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x74, 0x72, 0x79, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x65, 0x27, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x1f, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x1f, 0x09, 0x11, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x1f, 0x14, 0x15, 0x0a, 0x8c, 0x04, 0x0a, 0x02, + 0x04, 0x01, 0x12, 0x04, 0x27, 0x00, 0x3e, 0x01, 0x1a, 0xff, 0x03, 0x20, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x34, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x20, 0x2d, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x20, 0x75, + 0x73, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x0a, 0x20, 0x2d, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x0a, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x6f, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x20, + 0x61, 0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x2d, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x20, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2c, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x62, 0x61, 0x6b, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, + 0x01, 0x12, 0x03, 0x27, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, + 0x28, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x28, 0x02, + 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x28, 0x21, 0x2a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x28, 0x2d, 0x2e, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x29, 0x02, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x05, 0x12, 0x03, 0x29, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x29, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x29, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x29, + 0x15, 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x29, 0x16, + 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x2a, 0x02, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, 0x2a, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x02, 0x03, 0x12, 0x03, 0x2a, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, + 0x12, 0x03, 0x2b, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, + 0x2b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2b, 0x09, + 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x2b, 0x11, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x03, 0x2b, 0x13, 0x27, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x01, 0x02, 0x03, 0x08, 0x06, 0x12, 0x03, 0x2b, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x04, 0x12, 0x03, 0x2c, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x04, 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x2c, 0x09, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x2c, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x03, 0x2c, 0x1a, + 0x2e, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x2c, 0x1b, 0x2d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, 0x2e, 0x02, 0x34, 0x03, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x07, 0x16, 0x0a, 0x0d, 0x0a, 0x06, + 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x04, 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x2f, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x06, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x30, 0x04, 0x21, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x04, 0x1c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x30, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x31, 0x04, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x31, 0x04, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x31, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x03, 0x12, 0x03, 0x32, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x32, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x03, 0x02, 0x12, 0x03, 0x32, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x04, 0x12, 0x03, 0x33, 0x04, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x04, 0x01, 0x12, 0x03, 0x33, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x04, 0x02, 0x12, 0x03, 0x33, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, + 0x03, 0x36, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, 0x12, 0x03, 0x36, + 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x36, 0x12, 0x16, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x36, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x38, 0x02, 0x3d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x08, 0x00, 0x01, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x06, 0x12, 0x03, 0x39, 0x04, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x06, + 0x12, 0x03, 0x39, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, + 0x39, 0x1d, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x39, 0x2e, + 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x3a, 0x04, 0x23, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x03, 0x3a, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x3a, 0x17, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x07, 0x03, 0x12, 0x03, 0x3a, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, + 0x12, 0x03, 0x3b, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, + 0x3b, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x3b, 0x1f, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x3b, 0x32, 0x33, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x03, 0x3c, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x09, 0x06, 0x12, 0x03, 0x3c, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x09, 0x01, 0x12, 0x03, 0x3c, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, + 0x03, 0x12, 0x03, 0x3c, 0x1b, 0x1d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x40, 0x00, + 0x47, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x40, 0x08, 0x20, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x41, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x41, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x41, 0x09, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x41, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x42, + 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x42, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x09, 0x0e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x42, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x42, 0x13, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, + 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x42, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x12, 0x03, 0x43, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x43, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x43, + 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x43, 0x1a, 0x1b, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x44, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x03, 0x05, 0x12, 0x03, 0x44, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x44, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, + 0x12, 0x03, 0x44, 0x26, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x45, + 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x03, 0x45, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x45, 0x09, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x45, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x46, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x05, 0x04, 0x12, 0x03, 0x46, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, + 0x12, 0x03, 0x46, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, + 0x46, 0x12, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x46, 0x2c, + 0x2d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x49, 0x00, 0x4c, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x49, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, + 0x00, 0x12, 0x03, 0x4a, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, + 0x03, 0x4a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4a, + 0x0b, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x15, 0x16, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x4b, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x4b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4b, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x4b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x4b, 0x1a, 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4e, 0x00, 0x4f, + 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4e, 0x08, 0x22, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x05, 0x12, 0x04, 0x51, 0x00, 0x54, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, + 0x12, 0x03, 0x51, 0x08, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x52, + 0x02, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x06, 0x12, 0x03, 0x52, 0x02, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x52, 0x19, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x52, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x53, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x01, 0x04, 0x12, 0x03, 0x53, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, + 0x12, 0x03, 0x53, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x53, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x53, 0x1a, + 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x56, 0x00, 0x5c, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x56, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, + 0x00, 0x12, 0x03, 0x57, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x06, 0x12, + 0x03, 0x57, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x57, + 0x0b, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x57, 0x11, 0x12, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x58, 0x02, 0x32, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x58, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x01, 0x01, 0x12, 0x03, 0x58, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x58, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x08, + 0x12, 0x03, 0x58, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x06, 0x02, 0x01, 0x08, 0x06, 0x12, + 0x03, 0x58, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x59, 0x02, + 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x03, 0x59, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x59, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x59, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x06, 0x02, 0x03, 0x12, 0x03, 0x5a, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, + 0x05, 0x12, 0x03, 0x5a, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, + 0x03, 0x5a, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x03, 0x5a, + 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x04, 0x12, 0x03, 0x5b, 0x02, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x05, 0x12, 0x03, 0x5b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x04, 0x01, 0x12, 0x03, 0x5b, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x04, 0x03, 0x12, 0x03, 0x5b, 0x10, 0x11, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, + 0x04, 0x5e, 0x00, 0x68, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x5e, 0x08, + 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x5f, 0x02, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x5f, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x5f, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x5f, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, + 0x12, 0x03, 0x60, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x03, + 0x60, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x60, 0x08, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x60, 0x1c, 0x1d, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x61, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x02, 0x05, 0x12, 0x03, 0x61, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x61, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, + 0x03, 0x12, 0x03, 0x61, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x03, 0x12, 0x03, + 0x62, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x04, 0x12, 0x03, 0x62, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x05, 0x12, 0x03, 0x62, 0x0b, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x01, 0x12, 0x03, 0x62, 0x11, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x03, 0x03, 0x12, 0x03, 0x62, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x07, 0x02, 0x04, 0x12, 0x03, 0x63, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, + 0x05, 0x12, 0x03, 0x63, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x01, 0x12, + 0x03, 0x63, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x03, 0x12, 0x03, 0x63, + 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x08, 0x12, 0x03, 0x63, 0x16, 0x2a, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x07, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x63, 0x17, 0x29, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x05, 0x12, 0x03, 0x64, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x05, 0x05, 0x12, 0x03, 0x64, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x05, 0x01, 0x12, 0x03, 0x64, 0x07, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x05, + 0x03, 0x12, 0x03, 0x64, 0x11, 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x06, 0x12, 0x03, + 0x65, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x05, 0x12, 0x03, 0x65, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x01, 0x12, 0x03, 0x65, 0x09, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x03, 0x12, 0x03, 0x65, 0x15, 0x16, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x07, 0x02, 0x07, 0x12, 0x03, 0x66, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x07, 0x05, 0x12, 0x03, 0x66, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x66, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, 0x03, 0x12, + 0x03, 0x66, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x08, 0x12, 0x03, 0x67, 0x02, + 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x04, 0x12, 0x03, 0x67, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x06, 0x12, 0x03, 0x67, 0x0b, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x08, 0x01, 0x12, 0x03, 0x67, 0x1a, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x08, 0x03, 0x12, 0x03, 0x67, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x08, 0x12, + 0x04, 0x6a, 0x00, 0x6d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x6a, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x6b, 0x02, 0x32, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x6b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x08, 0x12, 0x03, 0x6b, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, + 0x12, 0x03, 0x6b, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x6c, + 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x03, 0x6c, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6c, 0x09, 0x18, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6c, 0x1b, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x09, 0x12, 0x04, 0x6f, 0x00, 0x77, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, + 0x03, 0x6f, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x03, 0x70, 0x02, + 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x03, 0x70, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x70, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x70, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x09, 0x02, 0x01, 0x12, 0x03, 0x71, 0x02, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x71, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x71, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x03, 0x71, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x08, 0x12, 0x03, 0x71, 0x1d, 0x31, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x71, 0x1e, 0x30, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x03, 0x72, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x02, 0x05, 0x12, 0x03, 0x72, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x72, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, + 0x03, 0x12, 0x03, 0x72, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x08, 0x12, + 0x03, 0x72, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x02, 0x08, 0x06, 0x12, 0x03, + 0x72, 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x03, 0x73, 0x02, 0x31, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x05, 0x12, 0x03, 0x73, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, 0x12, 0x03, 0x73, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x03, 0x03, 0x12, 0x03, 0x73, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x03, 0x08, 0x12, 0x03, 0x73, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x03, + 0x08, 0x06, 0x12, 0x03, 0x73, 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x04, 0x12, + 0x03, 0x74, 0x02, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x06, 0x12, 0x03, 0x74, + 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x01, 0x12, 0x03, 0x74, 0x21, 0x3a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x03, 0x12, 0x03, 0x74, 0x3d, 0x3e, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x09, 0x02, 0x05, 0x12, 0x03, 0x75, 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x05, 0x06, 0x12, 0x03, 0x75, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x05, 0x01, 0x12, 0x03, 0x75, 0x15, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x05, 0x03, + 0x12, 0x03, 0x75, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x06, 0x12, 0x03, 0x76, + 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x06, 0x12, 0x03, 0x76, 0x02, 0x0b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x01, 0x12, 0x03, 0x76, 0x0c, 0x15, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x03, 0x12, 0x03, 0x76, 0x18, 0x19, 0x0a, 0x0b, 0x0a, 0x02, + 0x04, 0x0a, 0x12, 0x05, 0x79, 0x00, 0x86, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0a, 0x01, + 0x12, 0x03, 0x79, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x04, 0x00, 0x12, 0x04, 0x7b, + 0x02, 0x7f, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x04, 0x00, 0x01, 0x12, 0x03, 0x7b, 0x07, + 0x13, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x7c, 0x04, 0x23, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x7c, 0x04, 0x1e, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x7c, 0x21, 0x22, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x28, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x23, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x7d, 0x26, 0x27, 0x0a, + 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x04, 0x28, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7e, 0x04, 0x23, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0x81, 0x01, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x01, 0x0f, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x01, 0x20, 0x21, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0a, 0x08, + 0x00, 0x12, 0x06, 0x82, 0x01, 0x02, 0x85, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x82, 0x01, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, + 0x12, 0x04, 0x83, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x83, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x83, 0x01, 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, + 0x01, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x02, 0x12, 0x04, 0x84, 0x01, 0x04, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x06, 0x12, 0x04, 0x84, 0x01, 0x04, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x01, 0x12, 0x04, 0x84, 0x01, 0x13, 0x23, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x03, 0x12, 0x04, 0x84, 0x01, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0x88, 0x01, 0x00, 0x8b, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0b, 0x01, 0x12, 0x04, 0x88, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, + 0x00, 0x12, 0x04, 0x89, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, + 0x12, 0x04, 0x89, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x89, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x89, 0x01, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x04, 0x8a, 0x01, + 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8a, 0x01, 0x02, + 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x10, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x01, 0x19, 0x1a, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0x8d, 0x01, 0x00, 0x90, 0x01, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0x8d, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, + 0x02, 0x00, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, + 0x04, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, + 0x12, 0x04, 0x8e, 0x01, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x8e, 0x01, 0x1a, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x8e, 0x01, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x01, + 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x04, 0x12, 0x04, 0x8f, 0x01, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8f, 0x01, 0x0b, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x11, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x1a, 0x1b, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0x92, 0x01, 0x00, 0xa8, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0d, 0x01, 0x12, 0x04, 0x92, 0x01, 0x08, 0x16, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x04, + 0x00, 0x12, 0x06, 0x94, 0x01, 0x02, 0x9c, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x04, + 0x00, 0x01, 0x12, 0x04, 0x94, 0x01, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x04, 0x95, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, + 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x95, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x0d, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x96, 0x01, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0x97, 0x01, 0x04, 0x18, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x1b, 0x1c, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1f, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1a, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0x98, 0x01, 0x1d, 0x1e, + 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x99, 0x01, 0x04, 0x1a, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x99, 0x01, 0x04, + 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x99, 0x01, + 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x9a, 0x01, + 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9a, + 0x01, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, + 0x9a, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x12, 0x04, + 0x9b, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, + 0x04, 0x9b, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x02, + 0x12, 0x04, 0x9b, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, + 0x9e, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9e, + 0x01, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9e, 0x01, + 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9e, 0x01, 0x0e, + 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x08, 0x00, 0x12, 0x06, 0xa0, 0x01, 0x02, 0xa7, 0x01, + 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x08, 0x0e, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x11, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa1, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x0d, 0x02, 0x02, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x02, 0x06, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xa2, 0x01, 0x13, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xa2, 0x01, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x03, 0x12, 0x04, + 0xa3, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa3, + 0x01, 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa3, 0x01, + 0x14, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x28, + 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x04, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x10, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x05, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, + 0x02, 0x05, 0x06, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x05, + 0x03, 0x12, 0x04, 0xa5, 0x01, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x06, 0x12, + 0x04, 0xa6, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x06, 0x12, 0x04, + 0xa6, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x01, 0x12, 0x04, 0xa6, + 0x01, 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x03, 0x12, 0x04, 0xa6, 0x01, + 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0xaa, 0x01, 0x00, 0xae, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x08, 0x14, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xab, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xab, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xab, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xab, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, + 0x12, 0x04, 0xac, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xac, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xac, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xac, + 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x02, 0x12, 0x04, 0xad, 0x01, 0x02, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x06, 0x12, 0x04, 0xad, 0x01, 0x02, 0x0e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xad, 0x01, 0x0f, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xad, 0x01, 0x18, 0x19, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xb0, 0x01, 0x00, 0xb5, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0f, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, + 0x00, 0x12, 0x04, 0xb1, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xb1, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb1, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb1, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x01, + 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x01, 0x02, + 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x08, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x19, 0x1a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0f, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb3, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, + 0x02, 0x03, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb4, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb4, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0xb7, 0x01, 0x00, + 0xbc, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x08, 0x17, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x10, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, + 0x01, 0x05, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xb9, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xb9, 0x01, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, + 0xba, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x05, 0x12, 0x04, 0xba, + 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0xba, 0x01, + 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0xba, 0x01, 0x0f, + 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x12, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x11, 0x12, 0x06, 0xbe, 0x01, 0x00, 0xc1, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, + 0x01, 0x12, 0x04, 0xbe, 0x01, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, + 0x04, 0xbf, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xbf, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbf, + 0x01, 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbf, 0x01, + 0x0f, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x08, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x09, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc0, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x12, 0x12, 0x06, 0xc3, 0x01, 0x00, 0xc7, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x12, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, + 0x12, 0x04, 0xc4, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xc4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xc4, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc4, + 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x02, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x07, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x08, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xc6, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, 0x12, + 0x06, 0xc9, 0x01, 0x00, 0xcf, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, + 0xc9, 0x01, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xca, 0x01, + 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x05, 0x12, 0x04, 0xca, 0x01, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x01, 0x09, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x01, 0x13, 0x14, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x13, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, + 0x02, 0x02, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, + 0x06, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xcc, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xcc, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, 0xcd, + 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x05, 0x12, 0x04, 0xcd, 0x01, + 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x09, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, 0x12, 0x04, 0xcd, 0x01, 0x14, 0x15, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x04, 0x12, 0x04, 0xce, 0x01, 0x02, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x04, 0x05, 0x12, 0x04, 0xce, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x04, 0x01, 0x12, 0x04, 0xce, 0x01, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x04, 0x03, 0x12, 0x04, 0xce, 0x01, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x14, 0x12, 0x06, 0xd1, 0x01, 0x00, 0xd6, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, + 0x12, 0x04, 0xd1, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, + 0xd2, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd2, + 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd2, 0x01, + 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x0f, + 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x08, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd3, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x02, 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xd4, 0x01, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xd4, 0x01, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, + 0x04, 0xd5, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x05, 0x12, 0x04, + 0xd5, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd5, + 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd5, 0x01, + 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd8, 0x01, 0x00, 0xdd, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xd8, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xd9, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, + 0x12, 0x04, 0xda, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xda, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xda, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, + 0x01, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xdb, 0x01, 0x02, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x09, 0x0c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x0f, 0x10, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x15, 0x02, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x15, 0x02, 0x03, 0x06, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x03, 0x01, 0x12, 0x04, 0xdc, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x03, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, + 0x06, 0xdf, 0x01, 0x00, 0xf2, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, + 0xdf, 0x01, 0x08, 0x1a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, 0x04, 0x00, 0x12, 0x06, 0xe0, 0x01, + 0x02, 0xe7, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x04, 0x00, 0x01, 0x12, 0x04, 0xe0, + 0x01, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe1, + 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xe1, 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, + 0x04, 0xe1, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x12, + 0x04, 0xe2, 0x01, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xe2, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, + 0x02, 0x12, 0x04, 0xe2, 0x01, 0x22, 0x23, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x04, 0xe3, 0x01, 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xe3, 0x01, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, + 0x02, 0x02, 0x02, 0x12, 0x04, 0xe3, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, + 0x00, 0x02, 0x03, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x23, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, + 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xe4, 0x01, 0x21, 0x22, 0x0a, 0x0e, 0x0a, 0x06, 0x04, + 0x16, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x16, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x16, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xe5, 0x01, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, + 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x19, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xe6, 0x01, 0x1c, 0x1d, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x16, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x16, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe9, 0x01, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, + 0x08, 0x00, 0x12, 0x06, 0xeb, 0x01, 0x02, 0xf1, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, + 0x08, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x01, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, + 0x01, 0x12, 0x04, 0xec, 0x01, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x06, + 0x12, 0x04, 0xec, 0x01, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xec, 0x01, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xec, 0x01, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xed, 0x01, + 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x06, 0x12, 0x04, 0xed, 0x01, 0x04, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x01, 0x12, 0x04, 0xed, 0x01, 0x12, 0x20, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x03, 0x12, 0x04, 0xed, 0x01, 0x23, 0x24, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x03, 0x12, 0x04, 0xee, 0x01, 0x04, 0x32, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x03, 0x06, 0x12, 0x04, 0xee, 0x01, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x16, 0x02, 0x03, 0x01, 0x12, 0x04, 0xee, 0x01, 0x18, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x16, 0x02, 0x03, 0x03, 0x12, 0x04, 0xee, 0x01, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, + 0x02, 0x04, 0x12, 0x04, 0xef, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, + 0x06, 0x12, 0x04, 0xef, 0x01, 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x01, + 0x12, 0x04, 0xef, 0x01, 0x14, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x03, 0x12, + 0x04, 0xef, 0x01, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x05, 0x12, 0x04, 0xf0, + 0x01, 0x04, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x06, 0x12, 0x04, 0xf0, 0x01, + 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf0, 0x01, 0x14, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf0, 0x01, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xf4, 0x01, 0x00, 0xf9, 0x01, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xf4, 0x01, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x17, 0x02, 0x00, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xf5, 0x01, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xf5, 0x01, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, + 0xf6, 0x01, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x04, 0x12, 0x04, 0xf6, + 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x06, 0x12, 0x04, 0xf6, 0x01, + 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf6, 0x01, 0x14, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, 0x01, 0x25, 0x26, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf7, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf7, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x17, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf7, 0x01, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, + 0x02, 0x03, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xf8, 0x01, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xf8, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xfb, 0x01, 0x00, + 0xfe, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xfb, 0x01, 0x08, 0x1a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfc, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfc, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x18, 0x02, 0x01, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, + 0x01, 0x06, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xfd, 0x01, 0x0f, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xfd, 0x01, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0x80, 0x02, + 0x00, 0x84, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0x80, 0x02, 0x08, + 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0x81, 0x02, 0x02, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x02, 0x02, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x02, 0x15, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, 0x82, 0x02, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x01, 0x04, 0x12, 0x04, 0x82, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x01, 0x06, 0x12, 0x04, 0x82, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x82, 0x02, 0x14, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x82, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, 0x04, + 0x83, 0x02, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x04, 0x12, 0x04, 0x83, + 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, 0x12, 0x04, 0x83, 0x02, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, 0x12, 0x04, 0x83, 0x02, 0x12, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, 0x02, 0x1e, 0x1f, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, 0x86, 0x02, 0x00, 0x89, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0x86, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1a, 0x02, 0x00, 0x12, 0x04, 0x87, 0x02, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, + 0x00, 0x05, 0x12, 0x04, 0x87, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, + 0x01, 0x12, 0x04, 0x87, 0x02, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, + 0x12, 0x04, 0x87, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, + 0x88, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x04, 0x12, 0x04, 0x88, + 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x06, 0x12, 0x04, 0x88, 0x02, + 0x0b, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, 0x02, 0x26, + 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x02, 0x3c, 0x3d, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0x8b, 0x02, 0x00, 0x96, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x08, 0x22, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x1b, 0x04, 0x00, 0x12, 0x06, 0x8c, 0x02, 0x02, 0x8f, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8c, 0x02, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1b, + 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1b, + 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x1b, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x8d, 0x02, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x8e, 0x02, 0x22, 0x23, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0x91, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1b, 0x02, 0x00, 0x06, 0x12, 0x04, 0x91, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x02, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x02, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1b, 0x08, + 0x00, 0x12, 0x06, 0x93, 0x02, 0x02, 0x95, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x93, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, + 0x12, 0x04, 0x94, 0x02, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x94, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x94, 0x02, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x94, + 0x02, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0x98, 0x02, 0x00, 0x9a, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x08, 0x1b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0x99, 0x02, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1c, 0x02, 0x00, 0x04, 0x12, 0x04, 0x99, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1c, 0x02, 0x00, 0x06, 0x12, 0x04, 0x99, 0x02, 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x02, 0x1e, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x99, 0x02, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, + 0x9c, 0x02, 0x00, 0x9f, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0x9c, + 0x02, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x02, 0x02, + 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9d, 0x02, 0x02, 0x07, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x02, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x02, 0x13, 0x14, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1d, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x0d, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x9e, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, + 0x06, 0xa1, 0x02, 0x00, 0xa7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, + 0xa1, 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0xa2, 0x02, + 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa2, 0x02, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x09, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa2, 0x02, 0x13, 0x14, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa3, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, + 0x02, 0x02, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, + 0x04, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x06, + 0x12, 0x04, 0xa4, 0x02, 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xa4, 0x02, 0x18, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xa4, 0x02, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x03, 0x12, 0x04, 0xa5, 0x02, + 0x02, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa5, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa5, 0x02, 0x0b, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa5, 0x02, 0x18, 0x29, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa5, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x04, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa6, 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xa6, 0x02, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, + 0xa8, 0x02, 0x00, 0xb5, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xa8, + 0x02, 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1f, 0x04, 0x00, 0x12, 0x06, 0xa9, 0x02, 0x02, + 0xae, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x02, + 0x07, 0x11, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xaa, 0x02, + 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaa, + 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, + 0xaa, 0x02, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, + 0xab, 0x02, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xab, 0x02, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x04, 0xab, 0x02, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, + 0x12, 0x04, 0xac, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xac, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, + 0x02, 0x02, 0x12, 0x04, 0xac, 0x02, 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, + 0x02, 0x03, 0x12, 0x04, 0xad, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x04, 0xad, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, + 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xad, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, + 0x02, 0x00, 0x12, 0x04, 0xaf, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xaf, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xaf, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xaf, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, 0x12, 0x04, 0xb0, + 0x02, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb0, 0x02, + 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x1a, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x02, 0x07, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1f, 0x02, 0x03, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, + 0x03, 0x04, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, + 0x06, 0x12, 0x04, 0xb2, 0x02, 0x0b, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb2, 0x02, 0x28, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb2, 0x02, 0x3e, 0x3f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x04, 0x12, 0x04, 0xb3, + 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x04, 0x12, 0x04, 0xb3, 0x02, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb3, 0x02, 0x0b, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb3, 0x02, 0x14, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb3, 0x02, 0x1d, 0x1e, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x05, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1f, 0x02, 0x05, 0x04, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1f, 0x02, 0x05, 0x06, 0x12, 0x04, 0xb4, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1f, 0x02, 0x05, 0x01, 0x12, 0x04, 0xb4, 0x02, 0x14, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, + 0x02, 0x05, 0x03, 0x12, 0x04, 0xb4, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x20, 0x12, + 0x06, 0xb7, 0x02, 0x00, 0xbd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, 0x04, + 0xb7, 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x02, + 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x02, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x02, 0x09, 0x0d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x02, 0x10, 0x11, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x20, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x20, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x07, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x20, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb9, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, + 0x02, 0x02, 0x12, 0x04, 0xba, 0x02, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, + 0x04, 0x12, 0x04, 0xba, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x06, + 0x12, 0x04, 0xba, 0x02, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xba, 0x02, 0x17, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xba, 0x02, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x02, + 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x04, 0x12, 0x04, 0xbb, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x02, 0x0b, 0x25, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x26, 0x39, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x3c, 0x3d, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x20, 0x02, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x26, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x20, 0x02, 0x04, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x20, 0x02, 0x04, 0x06, 0x12, 0x04, 0xbc, 0x02, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x1b, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xbc, 0x02, 0x24, 0x25, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x21, 0x12, 0x06, + 0xbf, 0x02, 0x00, 0xc2, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xbf, + 0x02, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x02, 0x02, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x17, 0x22, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x21, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x07, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xc1, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x22, 0x12, 0x06, + 0xc4, 0x02, 0x00, 0xc7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, 0xc4, + 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, 0xc5, 0x02, 0x02, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc5, 0x02, 0x10, 0x11, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x22, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x22, 0x02, 0x01, 0x06, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x22, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xc6, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x23, 0x12, + 0x06, 0xc9, 0x02, 0x00, 0xcb, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, + 0xc9, 0x02, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0xca, 0x02, + 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, 0xca, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x06, 0x12, 0x04, 0xca, 0x02, 0x0b, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x02, 0x17, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x02, 0x25, 0x26, 0x0a, 0x0c, + 0x0a, 0x02, 0x05, 0x00, 0x12, 0x06, 0xcd, 0x02, 0x00, 0xdd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x05, 0x00, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x05, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x00, 0x12, 0x04, 0xce, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xce, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, + 0x04, 0xce, 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x04, 0xcf, + 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x02, + 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xcf, 0x02, 0x14, + 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x03, 0x02, 0x12, 0x04, 0xd1, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x04, 0x12, 0x04, 0xd2, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x04, 0xd2, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, + 0x04, 0xd2, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x04, 0xd3, + 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd3, 0x02, + 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xd3, 0x02, 0x13, + 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x04, 0xd4, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x07, 0x02, 0x12, 0x04, 0xd5, 0x02, 0x14, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x08, 0x12, 0x04, 0xd6, 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, + 0x12, 0x04, 0xd6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, + 0x04, 0xd6, 0x02, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x04, 0xd7, + 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd7, 0x02, + 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x04, 0xd7, 0x02, 0x16, + 0x17, 0x0a, 0x2b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x18, 0x22, + 0x1d, 0x20, 0x60, 0x7b, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, + 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x04, 0xd8, 0x02, 0x16, 0x17, 0x0a, 0x22, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x0b, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x18, 0x22, 0x14, 0x20, 0x60, 0x28, 0x4d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, 0x67, 0x29, 0x60, 0x2c, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x04, 0xd9, 0x02, 0x16, 0x17, 0x0a, 0x22, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x04, 0xda, 0x02, 0x02, 0x24, 0x22, 0x14, 0x20, 0x60, + 0x7b, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x31, 0x36, 0x20, 0x7d, 0x60, 0x60, + 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xda, 0x02, 0x02, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0xda, 0x02, 0x22, 0x23, + 0x0a, 0x37, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x1c, 0x22, 0x29, + 0x20, 0x60, 0x7b, 0x20, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f, + 0x6c, 0x2c, 0x20, 0x74, 0x6f, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, 0x4d, 0x6f, 0x76, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x0d, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, + 0x02, 0x12, 0x04, 0xdb, 0x02, 0x19, 0x1b, 0x0a, 0x1b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0e, 0x12, + 0x04, 0xdc, 0x02, 0x02, 0x1d, 0x22, 0x0d, 0x20, 0x60, 0x28, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x29, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xdc, + 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x02, 0x12, 0x04, 0xdc, 0x02, + 0x1a, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x24, 0x12, 0x06, 0xdf, 0x02, 0x00, 0xee, 0x02, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, 0xdf, 0x02, 0x08, 0x10, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x24, 0x03, 0x00, 0x12, 0x06, 0xe1, 0x02, 0x02, 0xe4, 0x02, 0x03, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x03, 0x00, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x0a, 0x17, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x08, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe2, 0x02, 0x09, 0x10, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe2, 0x02, 0x13, 0x14, 0x0a, + 0x0e, 0x0a, 0x06, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x14, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x0c, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x0d, + 0x0f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe3, 0x02, + 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x00, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x0b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe6, 0x02, 0x0c, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe6, 0x02, 0x13, 0x14, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x24, 0x08, 0x00, 0x12, 0x06, 0xe7, 0x02, 0x02, 0xed, 0x02, 0x03, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x08, 0x00, 0x01, 0x12, 0x04, 0xe7, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x24, 0x02, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, + 0x02, 0x01, 0x06, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xe8, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x02, 0x12, + 0x04, 0xe9, 0x02, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x06, 0x12, 0x04, + 0xe9, 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe9, + 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x03, 0x12, 0x04, 0xe9, 0x02, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x03, 0x12, 0x04, 0xea, 0x02, 0x04, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x05, 0x12, 0x04, 0xea, 0x02, 0x04, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x01, 0x12, 0x04, 0xea, 0x02, 0x0b, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x03, 0x12, 0x04, 0xea, 0x02, 0x26, 0x27, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x24, 0x02, 0x04, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x24, 0x02, 0x04, 0x06, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xeb, 0x02, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xeb, 0x02, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x05, + 0x12, 0x04, 0xec, 0x02, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x05, 0x12, + 0x04, 0xec, 0x02, 0x04, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x01, 0x12, 0x04, + 0xec, 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x03, 0x12, 0x04, 0xec, + 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0xf0, 0x02, 0x00, 0xf6, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0xf0, 0x02, 0x05, 0x10, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0xf1, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, + 0x02, 0x01, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, + 0x12, 0x04, 0xf2, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, + 0xf3, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf3, + 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0xf3, 0x02, + 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x19, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xf4, 0x02, 0x17, 0x18, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x04, 0x02, 0x12, 0x04, 0xf5, 0x02, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x25, + 0x12, 0x06, 0xf8, 0x02, 0x00, 0xfa, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x01, 0x12, + 0x04, 0xf8, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0xf9, + 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x06, 0x12, 0x04, 0xf9, 0x02, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x02, 0x0b, + 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x02, 0x17, 0x18, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0xfc, 0x02, 0x00, 0xff, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x26, 0x01, 0x12, 0x04, 0xfc, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x26, 0x02, 0x00, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xfd, 0x02, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xfd, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, 0x01, 0x12, 0x04, + 0xfe, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfe, + 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfe, 0x02, + 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x10, + 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x27, 0x12, 0x06, 0x81, 0x03, 0x00, 0x84, 0x03, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, 0x81, 0x03, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x27, 0x02, 0x00, 0x12, 0x04, 0x82, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, + 0x02, 0x00, 0x05, 0x12, 0x04, 0x82, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x82, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x82, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x01, 0x12, + 0x04, 0x83, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x05, 0x12, 0x04, + 0x83, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x01, 0x12, 0x04, 0x83, + 0x03, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, 0x03, + 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x28, 0x12, 0x06, 0x86, 0x03, 0x00, 0x8b, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x28, 0x01, 0x12, 0x04, 0x86, 0x03, 0x08, 0x15, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0x87, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x28, 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x87, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, + 0x12, 0x04, 0x88, 0x03, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, + 0x04, 0x88, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x88, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, + 0x03, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x02, 0x12, 0x04, 0x89, 0x03, 0x02, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x05, 0x12, 0x04, 0x89, 0x03, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x01, 0x12, 0x04, 0x89, 0x03, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x03, 0x12, 0x04, 0x89, 0x03, 0x10, 0x11, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x28, 0x02, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x28, 0x02, 0x03, 0x04, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x28, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8a, 0x03, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, + 0x02, 0x03, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x14, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, + 0x03, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x29, 0x12, 0x06, + 0x8d, 0x03, 0x00, 0xa0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, 0x01, 0x12, 0x04, 0x8d, + 0x03, 0x08, 0x11, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x04, 0x00, 0x12, 0x06, 0x8f, 0x03, 0x02, + 0x96, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x03, + 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0x90, 0x03, + 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, + 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, + 0x90, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, + 0x91, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x04, 0x91, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x04, 0x91, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, + 0x12, 0x04, 0x92, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x04, 0x92, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, + 0x02, 0x02, 0x12, 0x04, 0x92, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, + 0x02, 0x03, 0x12, 0x04, 0x93, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x04, 0x93, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, + 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0x93, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, + 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x94, 0x03, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, + 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x94, 0x03, 0x04, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x29, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x94, 0x03, 0x15, 0x16, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x95, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x95, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0x95, 0x03, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x04, 0x98, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x29, 0x02, 0x00, 0x06, 0x12, 0x04, 0x98, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x29, 0x02, 0x00, 0x01, 0x12, 0x04, 0x98, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x98, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x08, + 0x00, 0x12, 0x06, 0x99, 0x03, 0x02, 0x9f, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x99, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x01, + 0x12, 0x04, 0x9a, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x9a, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x9a, 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, + 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x02, 0x12, 0x04, 0x9b, 0x03, 0x04, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9b, 0x03, 0x04, 0x19, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9b, 0x03, 0x1a, 0x27, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9b, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x29, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x29, 0x02, 0x03, 0x06, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x29, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x18, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x03, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, + 0x04, 0x12, 0x04, 0x9d, 0x03, 0x04, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x06, + 0x12, 0x04, 0x9d, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x01, 0x12, + 0x04, 0x9d, 0x03, 0x16, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x03, 0x12, 0x04, + 0x9d, 0x03, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x05, 0x12, 0x04, 0x9e, 0x03, + 0x04, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x06, 0x12, 0x04, 0x9e, 0x03, 0x04, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9e, 0x03, 0x11, 0x1e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x03, 0x12, 0x04, 0x9e, 0x03, 0x21, 0x22, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xa2, 0x03, 0x00, 0xa5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x2a, 0x01, 0x12, 0x04, 0xa2, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, + 0x02, 0x00, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa3, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa3, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x01, 0x12, 0x04, 0xa4, + 0x03, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x03, + 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x08, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x14, 0x15, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, 0xa7, 0x03, 0x00, 0xac, 0x03, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xa7, 0x03, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x2b, 0x02, 0x00, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, + 0x00, 0x04, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xa8, 0x03, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa8, 0x03, 0x11, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa8, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x04, 0xa9, + 0x03, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa9, 0x03, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa9, 0x03, 0x0b, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa9, 0x03, 0x11, 0x1b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa9, 0x03, 0x1e, 0x1f, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x02, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2b, 0x02, 0x02, 0x05, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, + 0x02, 0x03, 0x12, 0x04, 0xab, 0x03, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, + 0x04, 0x12, 0x04, 0xab, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x05, + 0x12, 0x04, 0xab, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x01, 0x12, + 0x04, 0xab, 0x03, 0x12, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x03, 0x12, 0x04, + 0xab, 0x03, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xae, 0x03, 0x00, 0xb2, + 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, 0x12, 0x04, 0xae, 0x03, 0x08, 0x1b, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2c, 0x02, 0x00, 0x06, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaf, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, + 0x02, 0x01, 0x12, 0x04, 0xb0, 0x03, 0x02, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, + 0x04, 0x12, 0x04, 0xb0, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xb0, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xb0, 0x03, 0x12, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xb0, 0x03, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x03, + 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb1, 0x03, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb1, 0x03, 0x0b, 0x1b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x03, 0x1c, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x03, 0x30, 0x31, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x2d, 0x12, 0x06, 0xb4, 0x03, 0x00, 0xba, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x2d, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, + 0x00, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x06, + 0x12, 0x04, 0xb5, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb5, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb5, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x01, 0x12, 0x04, 0xb6, 0x03, + 0x02, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x04, 0x12, 0x04, 0xb6, 0x03, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb6, 0x03, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x12, 0x2c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb6, 0x03, 0x2f, 0x30, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x02, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2d, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2d, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb7, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x1c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xb7, 0x03, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x03, + 0x12, 0x04, 0xb8, 0x03, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x05, 0x12, + 0x04, 0xb8, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xb8, 0x03, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb8, + 0x03, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x03, 0x02, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x13, 0x23, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb9, 0x03, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x2e, 0x12, 0x06, 0xbc, 0x03, 0x00, 0xc5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x2e, 0x01, 0x12, 0x04, 0xbc, 0x03, 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2e, 0x04, + 0x00, 0x12, 0x06, 0xbd, 0x03, 0x02, 0xc1, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x04, + 0x00, 0x01, 0x12, 0x04, 0xbd, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, + 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xbe, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x2e, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xbf, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x00, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xc3, 0x03, 0x0e, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, + 0x01, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xc4, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xc4, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xc4, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0xc7, 0x03, 0x00, 0xd0, + 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0xc7, 0x03, 0x08, 0x14, 0x0a, + 0x0e, 0x0a, 0x04, 0x04, 0x2f, 0x04, 0x00, 0x12, 0x06, 0xc8, 0x03, 0x02, 0xcc, 0x03, 0x03, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x07, 0x0b, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x19, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x14, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xc9, 0x03, 0x17, 0x18, + 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, 0x15, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, + 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xca, 0x03, + 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xcb, 0x03, + 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xcb, + 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, + 0xcb, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0xce, 0x03, + 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xce, 0x03, 0x02, + 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x03, 0x07, 0x0b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xce, 0x03, 0x0e, 0x0f, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x30, + 0x12, 0x06, 0xd2, 0x03, 0x00, 0xd5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x30, 0x01, 0x12, + 0x04, 0xd2, 0x03, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, 0x04, 0xd3, + 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x06, 0x12, 0x04, 0xd3, 0x03, + 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd3, 0x03, 0x0f, + 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd3, 0x03, 0x1c, 0x1d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x30, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x30, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x30, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd4, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x31, 0x12, 0x06, 0xd7, 0x03, 0x00, 0xda, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, + 0x12, 0x04, 0xd7, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x00, 0x12, 0x04, + 0xd8, 0x03, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd8, + 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd8, 0x03, + 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd8, 0x03, 0x11, + 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x0e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x31, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x32, 0x12, 0x06, 0xdc, 0x03, 0x00, 0xe0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x32, + 0x01, 0x12, 0x04, 0xdc, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, 0x12, + 0x04, 0xdd, 0x03, 0x02, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x04, 0x12, 0x04, + 0xdd, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, 0x04, 0xdd, + 0x03, 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdd, 0x03, + 0x18, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdd, 0x03, 0x26, + 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x01, 0x12, 0x04, 0xde, 0x03, 0x02, 0x2b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x04, 0x12, 0x04, 0xde, 0x03, 0x02, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x06, 0x12, 0x04, 0xde, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x32, 0x02, 0x01, 0x01, 0x12, 0x04, 0xde, 0x03, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x32, 0x02, 0x01, 0x03, 0x12, 0x04, 0xde, 0x03, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x32, 0x02, 0x02, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, + 0x02, 0x05, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xdf, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xdf, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xe2, 0x03, + 0x00, 0xe4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x33, 0x01, 0x12, 0x04, 0xe2, 0x03, 0x08, + 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x00, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe3, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe3, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x34, 0x12, 0x06, 0xe6, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x34, + 0x01, 0x12, 0x04, 0xe6, 0x03, 0x08, 0x18, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x34, 0x04, 0x00, 0x12, + 0x06, 0xe7, 0x03, 0x02, 0xed, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x04, 0x00, 0x01, + 0x12, 0x04, 0xe7, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, + 0x12, 0x04, 0xe8, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xe8, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, + 0x00, 0x02, 0x12, 0x04, 0xe8, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, + 0x02, 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, + 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xe9, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, + 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, + 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xea, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x34, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x13, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xeb, 0x03, 0x16, 0x17, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xec, 0x03, 0x04, 0x17, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xec, 0x03, 0x04, 0x12, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xec, 0x03, 0x15, 0x16, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x00, 0x12, 0x04, 0xef, 0x03, 0x02, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x06, 0x12, 0x04, 0xef, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x34, 0x08, 0x00, 0x12, 0x06, 0xf0, 0x03, 0x02, 0xf5, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x34, 0x08, 0x00, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, + 0x02, 0x01, 0x12, 0x04, 0xf1, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, + 0x06, 0x12, 0x04, 0xf1, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xf1, 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xf1, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0xf2, + 0x03, 0x04, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x06, 0x12, 0x04, 0xf2, 0x03, + 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf2, 0x03, 0x1a, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf2, 0x03, 0x2a, 0x2b, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x30, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf3, 0x03, 0x17, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x34, 0x02, 0x04, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, + 0x04, 0x06, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, + 0x01, 0x12, 0x04, 0xf4, 0x03, 0x16, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x03, + 0x12, 0x04, 0xf4, 0x03, 0x2c, 0x2d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("aptos.transaction.v1.serde.rs"); // @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.transaction.v1.serde.rs b/protos/rust/src/pb/aptos.transaction.v1.serde.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.transaction.v1.serde.rs rename to protos/rust/src/pb/aptos.transaction.v1.serde.rs diff --git a/protos/rust/src/pb/aptos.util.timestamp.rs b/protos/rust/src/pb/aptos.util.timestamp.rs new file mode 100644 index 0000000000000..9d142f32b02d8 --- /dev/null +++ b/protos/rust/src/pb/aptos.util.timestamp.rs @@ -0,0 +1,79 @@ +// Copyright © Aptos Foundation + +// @generated +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Timestamp { + /// Represents seconds of UTC time since Unix epoch + /// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + /// 9999-12-31T23:59:59Z inclusive. + #[prost(int64, tag="1")] + pub seconds: i64, + /// Non-negative fractions of a second at nanosecond resolution. Negative + /// second values with fractions must still have non-negative nanos values + /// that count forward in time. Must be from 0 to 999,999,999 + /// inclusive. + #[prost(int32, tag="2")] + pub nanos: i32, +} +/// Encoded file descriptor set for the `aptos.util.timestamp` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xf7, 0x06, 0x0a, 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x74, 0x69, 0x6c, 0x2f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, + 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x9c, 0x01, 0x0a, + 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x55, + 0x54, 0xaa, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0xca, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x55, 0x74, 0x69, 0x6c, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0xe2, + 0x02, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x55, 0x74, 0x69, 0x6c, 0x5c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x16, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x55, 0x74, 0x69, 0x6c, + 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4a, 0xd4, 0x04, 0x0a, 0x06, + 0x12, 0x04, 0x03, 0x00, 0x12, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, + 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, + 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, + 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x1d, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x07, 0x00, 0x12, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x07, 0x08, 0x11, 0x0a, 0x9c, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x0b, 0x02, 0x14, 0x1a, 0x8e, 0x01, 0x20, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x55, 0x54, 0x43, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x55, + 0x6e, 0x69, 0x78, 0x20, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x0a, 0x20, 0x31, 0x39, 0x37, 0x30, 0x2d, + 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x5a, 0x2e, + 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, 0x30, + 0x30, 0x31, 0x2d, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, + 0x30, 0x5a, 0x20, 0x74, 0x6f, 0x0a, 0x20, 0x39, 0x39, 0x39, 0x39, 0x2d, 0x31, 0x32, 0x2d, 0x33, + 0x31, 0x54, 0x32, 0x33, 0x3a, 0x35, 0x39, 0x3a, 0x35, 0x39, 0x5a, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, + 0x12, 0x03, 0x0b, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x0b, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, 0x12, + 0x13, 0x0a, 0xe4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x02, 0x12, 0x1a, + 0xd6, 0x01, 0x20, 0x4e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, + 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x69, 0x6c, + 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x0a, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x20, 0x4d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x0a, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x11, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x11, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x11, + 0x10, 0x11, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.util.timestamp.serde.rs"); +// @@protoc_insertion_point(module) diff --git a/crates/aptos-protos/src/pb/aptos.util.timestamp.serde.rs b/protos/rust/src/pb/aptos.util.timestamp.serde.rs similarity index 100% rename from crates/aptos-protos/src/pb/aptos.util.timestamp.serde.rs rename to protos/rust/src/pb/aptos.util.timestamp.serde.rs diff --git a/crates/aptos-protos/src/pb/mod.rs b/protos/rust/src/pb/mod.rs similarity index 79% rename from crates/aptos-protos/src/pb/mod.rs rename to protos/rust/src/pb/mod.rs index 053c32a7b9aeb..ffeadb8c767c0 100644 --- a/crates/aptos-protos/src/pb/mod.rs +++ b/protos/rust/src/pb/mod.rs @@ -2,6 +2,15 @@ // @generated pub mod aptos { + pub mod bigquery_schema { + pub mod transaction { + // @@protoc_insertion_point(attribute:aptos.bigquery_schema.transaction.v1) + pub mod v1 { + include!("aptos.bigquery_schema.transaction.v1.rs"); + // @@protoc_insertion_point(aptos.bigquery_schema.transaction.v1) + } + } + } pub mod indexer { // @@protoc_insertion_point(attribute:aptos.indexer.v1) pub mod v1 { diff --git a/protos/scripts/build_protos.sh b/protos/scripts/build_protos.sh new file mode 100755 index 0000000000000..62ec059a17479 --- /dev/null +++ b/protos/scripts/build_protos.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +set -e + +# Make sure pre-commit is installed. +if ! command -v pre-commit &> /dev/null +then + echo "pre-commit could not be found. Please install it with 'pip install pre-commit'." + exit +fi + +# Make sure buf is installed. +if ! command -v buf &> /dev/null +then + echo "buf could not be found. Please install it with 'brew install buf'." + exit +fi + +# Make sure poetry is installed. +if ! command -v poetry &> /dev/null +then + echo "poetry could not be found. Please install it with 'pip install poetry'." + exit +fi + +# Change to the parent directory. +cd "$(dirname "$0")" +cd .. + +# Generate code for Rust and TS. +for file in *.gen.yaml +do + # For Python we use the Python toolchain. + if [[ $file == *"python"* ]]; then + continue + fi + buf generate --template "$file" +done + +# Generate code for Python. Currently there is no easy way to use buf for Python +# without using a remote registry or compiling github.com/grpc/grpc from source, +# so instead we use the Python toolchain, specifically grpc_tools.protoc. +cd python +poetry install +poetry run poe generate + +# Run the pre-commit steps. +pre-commit run --all-files > /dev/null || true diff --git a/protos/scripts/install_deps.sh b/protos/scripts/install_deps.sh new file mode 100755 index 0000000000000..622df71f70040 --- /dev/null +++ b/protos/scripts/install_deps.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# This assumes that cargo, pnpm, poetry, buf, and protoc are already installed. + +# For generating Rust code +cargo install --version 0.2.3 protoc-gen-prost +cargo install --version 0.2.3 protoc-gen-prost-serde +cargo install --version 0.3.1 protoc-gen-prost-crate +cargo install --version 0.3.0 protoc-gen-tonic + +# For generating TS code +pnpm install -g protoc-gen-ts@0.8.7 + +# For generating Python code +cd python +poetry install + diff --git a/protos/typescript/.gitignore b/protos/typescript/.gitignore new file mode 100644 index 0000000000000..3f3844e7073ed --- /dev/null +++ b/protos/typescript/.gitignore @@ -0,0 +1,65 @@ +dist +node_modules/ +.node_modules/ +built/* +tests/cases/rwc/* +tests/cases/perf/* +!tests/cases/webharness/compilerToString.js +test-args.txt +~*.docx +\#*\# +.\#* +tests/baselines/local/* +tests/baselines/local.old/* +tests/services/baselines/local/* +tests/baselines/prototyping/local/* +tests/baselines/rwc/* +tests/baselines/reference/projectOutput/* +tests/baselines/local/projectOutput/* +tests/baselines/reference/testresults.tap +tests/services/baselines/prototyping/local/* +tests/services/browser/typescriptServices.js +src/harness/*.js +src/compiler/diagnosticInformationMap.generated.ts +src/compiler/diagnosticMessages.generated.json +src/parser/diagnosticInformationMap.generated.ts +src/parser/diagnosticMessages.generated.json +rwc-report.html +*.swp +build.json +*.actual +tests/webTestServer.js +tests/webTestServer.js.map +tests/webhost/*.d.ts +tests/webhost/webtsc.js +tests/cases/**/*.js +tests/cases/**/*.js.map +*.config +scripts/eslint/built/ +scripts/debug.bat +scripts/run.bat +scripts/**/*.js +scripts/**/*.js.map +coverage/ +**/.DS_Store +.settings +**/.vs +**/.vscode/* +!**/.vscode/tasks.json +!**/.vscode/settings.template.json +!**/.vscode/launch.template.json +!**/.vscode/extensions.json +!tests/cases/projects/projectOption/**/node_modules +!tests/cases/projects/NodeModulesSearch/**/* +!tests/baselines/reference/project/nodeModules*/**/* +.idea +yarn.lock +yarn-error.log +.parallelperf.* +tests/baselines/reference/dt +.failed-tests +TEST-results.xml +package-lock.json +.eslintcache +*v8.log +/lib/ diff --git a/protos/typescript/CHANGELOG.md b/protos/typescript/CHANGELOG.md new file mode 100644 index 0000000000000..9418b622443db --- /dev/null +++ b/protos/typescript/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the Aptos Protos will be captured in this file. This changelog is written by hand for now. + +## Unreleased + +## 1.1.2 +- Initial release. diff --git a/protos/typescript/CONTRIBUTING.md b/protos/typescript/CONTRIBUTING.md new file mode 100644 index 0000000000000..e0537fdb45903 --- /dev/null +++ b/protos/typescript/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Aptos Protos + +## Changelog +To update the changelog do the following: + +1. Bump the version in `package.json` according to [semver](https://semver.org/). +2. Bump the version in `version.ts`. +3. Add the change description in the CHANGELOG under the "Unreleased" section. + +## Release process +To release a new version of the package do the following. + +1. Check that the commit you're deploying from (likely just the latest commit of `main`) is green in CI. +1. Bump the version in `package.json` according to [semver](https://semver.org/). +1. Bump the version in `version.ts`. +1. Add an entry in the CHANGELOG for the version. We adhere to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Generally this means changing the "Unreleased" section to a version and then making a new "Unreleased" section. +1. Once the CI is green land the PR into the main branch. +1. Check out the latest commit on main. +1. Get the auth token from our password manager. Search for "npmjs". It should look like similar to this: `npm_cccaCVg0bWaaR741D5Gdsd12T4JpQre444aaaa`. +1. Run `pnpm publish --dry-run`. From here, make some sanity checks: + a. Look closely at the output of the command. Pay close attention to what is packaged. Make sure we're not including some files that were included accidentally. For example `.aptos`. Add those to .npmignore if needed. + b. Compare the summary with the public npm package summary on npmjs. The number of files and sizes should not vary too much. +1. Run `pnpm build` +1. Run `NODE_AUTH_TOKEN= pnpm publish --non-interactive`. +1. Double check that the release worked by visitng npmjs: https://www.npmjs.com/package/aptos-protos. diff --git a/protos/typescript/README.md b/protos/typescript/README.md new file mode 100644 index 0000000000000..9e4fdef7b0088 --- /dev/null +++ b/protos/typescript/README.md @@ -0,0 +1,31 @@ +# Aptos Protos + +This repository contains the protobuf definitions for the Aptos tech stack. + +## Usage +Import the generated code like this: +```typescript +import { aptos } from "@aptos-labs/aptos-protos"; +``` + +Then use it like this: +```typescript +function parse(transaction: aptos.transaction.v1.Transaction) { + console.log(transaction) +} +``` + +These configuration options are required for typechecking to work: +```json +// tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + } +} +``` + +This package should work for both CommonJS (`"type": "commonjs"`) and ES (`"type": "module"`) modules. + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/protos/typescript/package.json b/protos/typescript/package.json new file mode 100644 index 0000000000000..7957e2e34c315 --- /dev/null +++ b/protos/typescript/package.json @@ -0,0 +1,36 @@ +{ + "name": "@aptos-labs/aptos-protos", + "description": "Code generated from protobuf definitions for the Aptos tech stack", + "version": "1.1.2", + "packageManager": "pnpm@8.6.2", + "license": "Apache-2.0", + "engines": { + "node": ">=14.0.0" + }, + "scripts": { + "prepare": "rm -rf dist && pnpm run build", + "build": "./scripts/build.sh" + }, + "dependencies": { + "@grpc/grpc-js": "^1.9.2", + "long": "^5.2.3", + "protobufjs": "^7.2.5" + }, + "devDependencies": { + "typescript": "4.8.4" + }, + "type": "module", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts", + "export": { + ".": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts" + } + }, + "files": [ + "dist" + ] +} diff --git a/protos/typescript/pnpm-lock.yaml b/protos/typescript/pnpm-lock.yaml new file mode 100644 index 0000000000000..987ddd6b14ec7 --- /dev/null +++ b/protos/typescript/pnpm-lock.yaml @@ -0,0 +1,232 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@grpc/grpc-js': + specifier: ^1.9.2 + version: 1.9.2 + long: + specifier: ^5.2.3 + version: 5.2.3 + protobufjs: + specifier: ^7.2.5 + version: 7.2.5 + +devDependencies: + typescript: + specifier: 4.8.4 + version: 4.8.4 + +packages: + + /@grpc/grpc-js@1.9.2: + resolution: {integrity: sha512-Lf2pUhNTaviEdEaGgjU+29qw3arX7Qd/45q66F3z1EV5hroE6wM9xSHPvjB8EY+b1RmKZgwnLWXQorC6fZ9g5g==} + engines: {node: ^8.13.0 || >=10.10.0} + dependencies: + '@grpc/proto-loader': 0.7.10 + '@types/node': 20.8.6 + dev: false + + /@grpc/proto-loader@0.7.10: + resolution: {integrity: sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.2.5 + yargs: 17.7.2 + dev: false + + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + + /@types/node@20.8.6: + resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + dependencies: + undici-types: 5.25.3 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + + /protobufjs@7.2.5: + resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.8.6 + long: 5.2.3 + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /typescript@4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false diff --git a/protos/typescript/scripts/build.sh b/protos/typescript/scripts/build.sh new file mode 100755 index 0000000000000..37e72555247f1 --- /dev/null +++ b/protos/typescript/scripts/build.sh @@ -0,0 +1,9 @@ +# Build the commonjs code. We include a package.json with the type set to commonjs +# so the downstream code knows that it is commonjs and not esm. +tsc --module commonjs --outDir dist/cjs +echo '{"type": "commonjs"}' > dist/cjs/package.json + +# Build the esm code. We include a package.json with the type set to esm +# so the downstream code knows that it is esm and not commonjs. +tsc --module es2022 --outDir dist/esm +echo '{"type": "module"}' > dist/esm/package.json diff --git a/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts b/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts new file mode 100644 index 0000000000000..0ecc8c533f898 --- /dev/null +++ b/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts @@ -0,0 +1,410 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +/** + * Proto2 is required. + * Current BigQuery runs over proto2, thus optional(nullable) + * field with default value will be ignored. For example, + * `int64 value = null` will be translated to 0 under column `value`. + * To avoid any analytics hassle, proto2 is required here. + */ + +/** + * Transaction is a simplified representation for the transaction + * happened on the chain. Mainly built for streaming into BigQuery. + * It matches with the structure defined for the transaction in Indexer. + */ +export interface Transaction { + version?: bigint | undefined; + blockHeight?: bigint | undefined; + hash?: string | undefined; + type?: string | undefined; + payload?: string | undefined; + stateChangeHash?: string | undefined; + eventRootHash?: string | undefined; + stateCheckpointHash?: string | undefined; + gasUsed?: bigint | undefined; + success?: boolean | undefined; + vmStatus?: string | undefined; + accumulatorRootHash?: string | undefined; + numEvents?: bigint | undefined; + numWriteSetChanges?: bigint | undefined; + epoch?: bigint | undefined; + insertedAt?: bigint | undefined; +} + +function createBaseTransaction(): Transaction { + return { + version: BigInt("0"), + blockHeight: BigInt("0"), + hash: "", + type: "", + payload: "", + stateChangeHash: "", + eventRootHash: "", + stateCheckpointHash: "", + gasUsed: BigInt("0"), + success: false, + vmStatus: "", + accumulatorRootHash: "", + numEvents: BigInt("0"), + numWriteSetChanges: BigInt("0"), + epoch: BigInt("0"), + insertedAt: BigInt("0"), + }; +} + +export const Transaction = { + encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.version !== undefined && message.version !== BigInt("0")) { + if (BigInt.asIntN(64, message.version) !== message.version) { + throw new Error("value provided for field message.version of type int64 too large"); + } + writer.uint32(8).int64(message.version.toString()); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + if (BigInt.asIntN(64, message.blockHeight) !== message.blockHeight) { + throw new Error("value provided for field message.blockHeight of type int64 too large"); + } + writer.uint32(16).int64(message.blockHeight.toString()); + } + if (message.hash !== undefined && message.hash !== "") { + writer.uint32(26).string(message.hash); + } + if (message.type !== undefined && message.type !== "") { + writer.uint32(34).string(message.type); + } + if (message.payload !== undefined && message.payload !== "") { + writer.uint32(42).string(message.payload); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash !== "") { + writer.uint32(50).string(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash !== "") { + writer.uint32(58).string(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined && message.stateCheckpointHash !== "") { + writer.uint32(66).string(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) { + throw new Error("value provided for field message.gasUsed of type uint64 too large"); + } + writer.uint32(72).uint64(message.gasUsed.toString()); + } + if (message.success === true) { + writer.uint32(80).bool(message.success); + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + writer.uint32(90).string(message.vmStatus); + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash !== "") { + writer.uint32(98).string(message.accumulatorRootHash); + } + if (message.numEvents !== undefined && message.numEvents !== BigInt("0")) { + if (BigInt.asIntN(64, message.numEvents) !== message.numEvents) { + throw new Error("value provided for field message.numEvents of type int64 too large"); + } + writer.uint32(104).int64(message.numEvents.toString()); + } + if (message.numWriteSetChanges !== undefined && message.numWriteSetChanges !== BigInt("0")) { + if (BigInt.asIntN(64, message.numWriteSetChanges) !== message.numWriteSetChanges) { + throw new Error("value provided for field message.numWriteSetChanges of type int64 too large"); + } + writer.uint32(112).int64(message.numWriteSetChanges.toString()); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + if (BigInt.asIntN(64, message.epoch) !== message.epoch) { + throw new Error("value provided for field message.epoch of type int64 too large"); + } + writer.uint32(120).int64(message.epoch.toString()); + } + if (message.insertedAt !== undefined && message.insertedAt !== BigInt("0")) { + if (BigInt.asIntN(64, message.insertedAt) !== message.insertedAt) { + throw new Error("value provided for field message.insertedAt of type int64 too large"); + } + writer.uint32(128).int64(message.insertedAt.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Transaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.version = longToBigint(reader.int64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.blockHeight = longToBigint(reader.int64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.hash = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.type = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.payload = reader.string(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.stateChangeHash = reader.string(); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.eventRootHash = reader.string(); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.stateCheckpointHash = reader.string(); + continue; + case 9: + if (tag !== 72) { + break; + } + + message.gasUsed = longToBigint(reader.uint64() as Long); + continue; + case 10: + if (tag !== 80) { + break; + } + + message.success = reader.bool(); + continue; + case 11: + if (tag !== 90) { + break; + } + + message.vmStatus = reader.string(); + continue; + case 12: + if (tag !== 98) { + break; + } + + message.accumulatorRootHash = reader.string(); + continue; + case 13: + if (tag !== 104) { + break; + } + + message.numEvents = longToBigint(reader.int64() as Long); + continue; + case 14: + if (tag !== 112) { + break; + } + + message.numWriteSetChanges = longToBigint(reader.int64() as Long); + continue; + case 15: + if (tag !== 120) { + break; + } + + message.epoch = longToBigint(reader.int64() as Long); + continue; + case 16: + if (tag !== 128) { + break; + } + + message.insertedAt = longToBigint(reader.int64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.encode(p).finish()]; + } + } else { + yield* [Transaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.decode(p)]; + } + } else { + yield* [Transaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Transaction { + return { + version: isSet(object.version) ? BigInt(object.version) : BigInt("0"), + blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight) : BigInt("0"), + hash: isSet(object.hash) ? globalThis.String(object.hash) : "", + type: isSet(object.type) ? globalThis.String(object.type) : "", + payload: isSet(object.payload) ? globalThis.String(object.payload) : "", + stateChangeHash: isSet(object.stateChangeHash) ? globalThis.String(object.stateChangeHash) : "", + eventRootHash: isSet(object.eventRootHash) ? globalThis.String(object.eventRootHash) : "", + stateCheckpointHash: isSet(object.stateCheckpointHash) ? globalThis.String(object.stateCheckpointHash) : "", + gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt("0"), + success: isSet(object.success) ? globalThis.Boolean(object.success) : false, + vmStatus: isSet(object.vmStatus) ? globalThis.String(object.vmStatus) : "", + accumulatorRootHash: isSet(object.accumulatorRootHash) ? globalThis.String(object.accumulatorRootHash) : "", + numEvents: isSet(object.numEvents) ? BigInt(object.numEvents) : BigInt("0"), + numWriteSetChanges: isSet(object.numWriteSetChanges) ? BigInt(object.numWriteSetChanges) : BigInt("0"), + epoch: isSet(object.epoch) ? BigInt(object.epoch) : BigInt("0"), + insertedAt: isSet(object.insertedAt) ? BigInt(object.insertedAt) : BigInt("0"), + }; + }, + + toJSON(message: Transaction): unknown { + const obj: any = {}; + if (message.version !== undefined && message.version !== BigInt("0")) { + obj.version = message.version.toString(); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + obj.blockHeight = message.blockHeight.toString(); + } + if (message.hash !== undefined && message.hash !== "") { + obj.hash = message.hash; + } + if (message.type !== undefined && message.type !== "") { + obj.type = message.type; + } + if (message.payload !== undefined && message.payload !== "") { + obj.payload = message.payload; + } + if (message.stateChangeHash !== undefined && message.stateChangeHash !== "") { + obj.stateChangeHash = message.stateChangeHash; + } + if (message.eventRootHash !== undefined && message.eventRootHash !== "") { + obj.eventRootHash = message.eventRootHash; + } + if (message.stateCheckpointHash !== undefined && message.stateCheckpointHash !== "") { + obj.stateCheckpointHash = message.stateCheckpointHash; + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + obj.gasUsed = message.gasUsed.toString(); + } + if (message.success === true) { + obj.success = message.success; + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + obj.vmStatus = message.vmStatus; + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash !== "") { + obj.accumulatorRootHash = message.accumulatorRootHash; + } + if (message.numEvents !== undefined && message.numEvents !== BigInt("0")) { + obj.numEvents = message.numEvents.toString(); + } + if (message.numWriteSetChanges !== undefined && message.numWriteSetChanges !== BigInt("0")) { + obj.numWriteSetChanges = message.numWriteSetChanges.toString(); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + obj.epoch = message.epoch.toString(); + } + if (message.insertedAt !== undefined && message.insertedAt !== BigInt("0")) { + obj.insertedAt = message.insertedAt.toString(); + } + return obj; + }, + + create(base?: DeepPartial): Transaction { + return Transaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Transaction { + const message = createBaseTransaction(); + message.version = object.version ?? BigInt("0"); + message.blockHeight = object.blockHeight ?? BigInt("0"); + message.hash = object.hash ?? ""; + message.type = object.type ?? ""; + message.payload = object.payload ?? ""; + message.stateChangeHash = object.stateChangeHash ?? ""; + message.eventRootHash = object.eventRootHash ?? ""; + message.stateCheckpointHash = object.stateCheckpointHash ?? ""; + message.gasUsed = object.gasUsed ?? BigInt("0"); + message.success = object.success ?? false; + message.vmStatus = object.vmStatus ?? ""; + message.accumulatorRootHash = object.accumulatorRootHash ?? ""; + message.numEvents = object.numEvents ?? BigInt("0"); + message.numWriteSetChanges = object.numWriteSetChanges ?? BigInt("0"); + message.epoch = object.epoch ?? BigInt("0"); + message.insertedAt = object.insertedAt ?? BigInt("0"); + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/indexer/v1/raw_data.ts b/protos/typescript/src/aptos/indexer/v1/raw_data.ts new file mode 100644 index 0000000000000..71a00c29d61ad --- /dev/null +++ b/protos/typescript/src/aptos/indexer/v1/raw_data.ts @@ -0,0 +1,347 @@ +/* eslint-disable */ +import { + ChannelCredentials, + Client, + ClientReadableStream, + handleServerStreamingCall, + makeGenericClientConstructor, + Metadata, +} from "@grpc/grpc-js"; +import type { CallOptions, ClientOptions, UntypedServiceImplementation } from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Transaction } from "../../transaction/v1/transaction"; + +export interface GetTransactionsRequest { + /** Required; start version of current stream. */ + startingVersion?: + | bigint + | undefined; + /** + * Optional; number of transactions to return in current stream. + * If not present, return an infinite stream of transactions. + */ + transactionsCount?: + | bigint + | undefined; + /** + * Optional; number of transactions in each `TransactionsResponse` for current stream. + * If not present, default to 1000. If larger than 1000, request will be rejected. + */ + batchSize?: bigint | undefined; +} + +/** TransactionsResponse is a batch of transactions. */ +export interface TransactionsResponse { + /** Required; transactions data. */ + transactions?: + | Transaction[] + | undefined; + /** Required; chain id. */ + chainId?: bigint | undefined; +} + +function createBaseGetTransactionsRequest(): GetTransactionsRequest { + return { startingVersion: undefined, transactionsCount: undefined, batchSize: undefined }; +} + +export const GetTransactionsRequest = { + encode(message: GetTransactionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.startingVersion !== undefined) { + if (BigInt.asUintN(64, message.startingVersion) !== message.startingVersion) { + throw new Error("value provided for field message.startingVersion of type uint64 too large"); + } + writer.uint32(8).uint64(message.startingVersion.toString()); + } + if (message.transactionsCount !== undefined) { + if (BigInt.asUintN(64, message.transactionsCount) !== message.transactionsCount) { + throw new Error("value provided for field message.transactionsCount of type uint64 too large"); + } + writer.uint32(16).uint64(message.transactionsCount.toString()); + } + if (message.batchSize !== undefined) { + if (BigInt.asUintN(64, message.batchSize) !== message.batchSize) { + throw new Error("value provided for field message.batchSize of type uint64 too large"); + } + writer.uint32(24).uint64(message.batchSize.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetTransactionsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetTransactionsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.startingVersion = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.transactionsCount = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.batchSize = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsRequest.encode(p).finish()]; + } + } else { + yield* [GetTransactionsRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsRequest.decode(p)]; + } + } else { + yield* [GetTransactionsRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GetTransactionsRequest { + return { + startingVersion: isSet(object.startingVersion) ? BigInt(object.startingVersion) : undefined, + transactionsCount: isSet(object.transactionsCount) ? BigInt(object.transactionsCount) : undefined, + batchSize: isSet(object.batchSize) ? BigInt(object.batchSize) : undefined, + }; + }, + + toJSON(message: GetTransactionsRequest): unknown { + const obj: any = {}; + if (message.startingVersion !== undefined) { + obj.startingVersion = message.startingVersion.toString(); + } + if (message.transactionsCount !== undefined) { + obj.transactionsCount = message.transactionsCount.toString(); + } + if (message.batchSize !== undefined) { + obj.batchSize = message.batchSize.toString(); + } + return obj; + }, + + create(base?: DeepPartial): GetTransactionsRequest { + return GetTransactionsRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GetTransactionsRequest { + const message = createBaseGetTransactionsRequest(); + message.startingVersion = object.startingVersion ?? undefined; + message.transactionsCount = object.transactionsCount ?? undefined; + message.batchSize = object.batchSize ?? undefined; + return message; + }, +}; + +function createBaseTransactionsResponse(): TransactionsResponse { + return { transactions: [], chainId: undefined }; +} + +export const TransactionsResponse = { + encode(message: TransactionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.chainId !== undefined) { + if (BigInt.asUintN(64, message.chainId) !== message.chainId) { + throw new Error("value provided for field message.chainId of type uint64 too large"); + } + writer.uint32(16).uint64(message.chainId.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.chainId = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsResponse.encode(p).finish()]; + } + } else { + yield* [TransactionsResponse.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsResponse.decode(p)]; + } + } else { + yield* [TransactionsResponse.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsResponse { + return { + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + chainId: isSet(object.chainId) ? BigInt(object.chainId) : undefined, + }; + }, + + toJSON(message: TransactionsResponse): unknown { + const obj: any = {}; + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + if (message.chainId !== undefined) { + obj.chainId = message.chainId.toString(); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsResponse { + return TransactionsResponse.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsResponse { + const message = createBaseTransactionsResponse(); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + message.chainId = object.chainId ?? undefined; + return message; + }, +}; + +export type RawDataService = typeof RawDataService; +export const RawDataService = { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions: { + path: "/aptos.indexer.v1.RawData/GetTransactions", + requestStream: false, + responseStream: true, + requestSerialize: (value: GetTransactionsRequest) => Buffer.from(GetTransactionsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetTransactionsRequest.decode(value), + responseSerialize: (value: TransactionsResponse) => Buffer.from(TransactionsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => TransactionsResponse.decode(value), + }, +} as const; + +export interface RawDataServer extends UntypedServiceImplementation { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions: handleServerStreamingCall; +} + +export interface RawDataClient extends Client { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions( + request: GetTransactionsRequest, + options?: Partial, + ): ClientReadableStream; + getTransactions( + request: GetTransactionsRequest, + metadata?: Metadata, + options?: Partial, + ): ClientReadableStream; +} + +export const RawDataClient = makeGenericClientConstructor(RawDataService, "aptos.indexer.v1.RawData") as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): RawDataClient; + service: typeof RawDataService; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts b/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts new file mode 100644 index 0000000000000..e2baae01e284f --- /dev/null +++ b/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts @@ -0,0 +1,619 @@ +/* eslint-disable */ +import { + ChannelCredentials, + Client, + ClientReadableStream, + handleServerStreamingCall, + makeGenericClientConstructor, + Metadata, +} from "@grpc/grpc-js"; +import type { CallOptions, ClientOptions, UntypedServiceImplementation } from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Transaction } from "../../../transaction/v1/transaction"; + +export interface TransactionsOutput { + transactions?: Transaction[] | undefined; +} + +export interface StreamStatus { + type?: + | StreamStatus_StatusType + | undefined; + /** Required. Start version of current batch/stream, inclusive. */ + startVersion?: + | bigint + | undefined; + /** End version of current *batch*, inclusive. */ + endVersion?: bigint | undefined; +} + +export enum StreamStatus_StatusType { + STATUS_TYPE_UNSPECIFIED = 0, + /** STATUS_TYPE_INIT - Signal for the start of the stream. */ + STATUS_TYPE_INIT = 1, + /** STATUS_TYPE_BATCH_END - Signal for the end of the batch. */ + STATUS_TYPE_BATCH_END = 2, + UNRECOGNIZED = -1, +} + +export function streamStatus_StatusTypeFromJSON(object: any): StreamStatus_StatusType { + switch (object) { + case 0: + case "STATUS_TYPE_UNSPECIFIED": + return StreamStatus_StatusType.STATUS_TYPE_UNSPECIFIED; + case 1: + case "STATUS_TYPE_INIT": + return StreamStatus_StatusType.STATUS_TYPE_INIT; + case 2: + case "STATUS_TYPE_BATCH_END": + return StreamStatus_StatusType.STATUS_TYPE_BATCH_END; + case -1: + case "UNRECOGNIZED": + default: + return StreamStatus_StatusType.UNRECOGNIZED; + } +} + +export function streamStatus_StatusTypeToJSON(object: StreamStatus_StatusType): string { + switch (object) { + case StreamStatus_StatusType.STATUS_TYPE_UNSPECIFIED: + return "STATUS_TYPE_UNSPECIFIED"; + case StreamStatus_StatusType.STATUS_TYPE_INIT: + return "STATUS_TYPE_INIT"; + case StreamStatus_StatusType.STATUS_TYPE_BATCH_END: + return "STATUS_TYPE_BATCH_END"; + case StreamStatus_StatusType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface GetTransactionsFromNodeRequest { + /** + * Required; start version of current stream. + * If not set will panic somewhere + */ + startingVersion?: + | bigint + | undefined; + /** + * Optional; number of transactions to return in current stream. + * If not set, response streams infinitely. + */ + transactionsCount?: bigint | undefined; +} + +export interface TransactionsFromNodeResponse { + status?: StreamStatus | undefined; + data?: + | TransactionsOutput + | undefined; + /** Making sure that all the responses include a chain id */ + chainId?: number | undefined; +} + +function createBaseTransactionsOutput(): TransactionsOutput { + return { transactions: [] }; +} + +export const TransactionsOutput = { + encode(message: TransactionsOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsOutput { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsOutput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsOutput.encode(p).finish()]; + } + } else { + yield* [TransactionsOutput.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsOutput.decode(p)]; + } + } else { + yield* [TransactionsOutput.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsOutput { + return { + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + }; + }, + + toJSON(message: TransactionsOutput): unknown { + const obj: any = {}; + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsOutput { + return TransactionsOutput.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsOutput { + const message = createBaseTransactionsOutput(); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseStreamStatus(): StreamStatus { + return { type: 0, startVersion: BigInt("0"), endVersion: undefined }; +} + +export const StreamStatus = { + encode(message: StreamStatus, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.startVersion !== undefined && message.startVersion !== BigInt("0")) { + if (BigInt.asUintN(64, message.startVersion) !== message.startVersion) { + throw new Error("value provided for field message.startVersion of type uint64 too large"); + } + writer.uint32(16).uint64(message.startVersion.toString()); + } + if (message.endVersion !== undefined) { + if (BigInt.asUintN(64, message.endVersion) !== message.endVersion) { + throw new Error("value provided for field message.endVersion of type uint64 too large"); + } + writer.uint32(24).uint64(message.endVersion.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): StreamStatus { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStreamStatus(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 16) { + break; + } + + message.startVersion = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.endVersion = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StreamStatus.encode(p).finish()]; + } + } else { + yield* [StreamStatus.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StreamStatus.decode(p)]; + } + } else { + yield* [StreamStatus.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): StreamStatus { + return { + type: isSet(object.type) ? streamStatus_StatusTypeFromJSON(object.type) : 0, + startVersion: isSet(object.startVersion) ? BigInt(object.startVersion) : BigInt("0"), + endVersion: isSet(object.endVersion) ? BigInt(object.endVersion) : undefined, + }; + }, + + toJSON(message: StreamStatus): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = streamStatus_StatusTypeToJSON(message.type); + } + if (message.startVersion !== undefined && message.startVersion !== BigInt("0")) { + obj.startVersion = message.startVersion.toString(); + } + if (message.endVersion !== undefined) { + obj.endVersion = message.endVersion.toString(); + } + return obj; + }, + + create(base?: DeepPartial): StreamStatus { + return StreamStatus.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): StreamStatus { + const message = createBaseStreamStatus(); + message.type = object.type ?? 0; + message.startVersion = object.startVersion ?? BigInt("0"); + message.endVersion = object.endVersion ?? undefined; + return message; + }, +}; + +function createBaseGetTransactionsFromNodeRequest(): GetTransactionsFromNodeRequest { + return { startingVersion: undefined, transactionsCount: undefined }; +} + +export const GetTransactionsFromNodeRequest = { + encode(message: GetTransactionsFromNodeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.startingVersion !== undefined) { + if (BigInt.asUintN(64, message.startingVersion) !== message.startingVersion) { + throw new Error("value provided for field message.startingVersion of type uint64 too large"); + } + writer.uint32(8).uint64(message.startingVersion.toString()); + } + if (message.transactionsCount !== undefined) { + if (BigInt.asUintN(64, message.transactionsCount) !== message.transactionsCount) { + throw new Error("value provided for field message.transactionsCount of type uint64 too large"); + } + writer.uint32(16).uint64(message.transactionsCount.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetTransactionsFromNodeRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetTransactionsFromNodeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.startingVersion = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.transactionsCount = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsFromNodeRequest.encode(p).finish()]; + } + } else { + yield* [GetTransactionsFromNodeRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsFromNodeRequest.decode(p)]; + } + } else { + yield* [GetTransactionsFromNodeRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GetTransactionsFromNodeRequest { + return { + startingVersion: isSet(object.startingVersion) ? BigInt(object.startingVersion) : undefined, + transactionsCount: isSet(object.transactionsCount) ? BigInt(object.transactionsCount) : undefined, + }; + }, + + toJSON(message: GetTransactionsFromNodeRequest): unknown { + const obj: any = {}; + if (message.startingVersion !== undefined) { + obj.startingVersion = message.startingVersion.toString(); + } + if (message.transactionsCount !== undefined) { + obj.transactionsCount = message.transactionsCount.toString(); + } + return obj; + }, + + create(base?: DeepPartial): GetTransactionsFromNodeRequest { + return GetTransactionsFromNodeRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GetTransactionsFromNodeRequest { + const message = createBaseGetTransactionsFromNodeRequest(); + message.startingVersion = object.startingVersion ?? undefined; + message.transactionsCount = object.transactionsCount ?? undefined; + return message; + }, +}; + +function createBaseTransactionsFromNodeResponse(): TransactionsFromNodeResponse { + return { status: undefined, data: undefined, chainId: 0 }; +} + +export const TransactionsFromNodeResponse = { + encode(message: TransactionsFromNodeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.status !== undefined) { + StreamStatus.encode(message.status, writer.uint32(10).fork()).ldelim(); + } + if (message.data !== undefined) { + TransactionsOutput.encode(message.data, writer.uint32(18).fork()).ldelim(); + } + if (message.chainId !== undefined && message.chainId !== 0) { + writer.uint32(24).uint32(message.chainId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsFromNodeResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsFromNodeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.status = StreamStatus.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.data = TransactionsOutput.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.chainId = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsFromNodeResponse.encode(p).finish()]; + } + } else { + yield* [TransactionsFromNodeResponse.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsFromNodeResponse.decode(p)]; + } + } else { + yield* [TransactionsFromNodeResponse.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsFromNodeResponse { + return { + status: isSet(object.status) ? StreamStatus.fromJSON(object.status) : undefined, + data: isSet(object.data) ? TransactionsOutput.fromJSON(object.data) : undefined, + chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0, + }; + }, + + toJSON(message: TransactionsFromNodeResponse): unknown { + const obj: any = {}; + if (message.status !== undefined) { + obj.status = StreamStatus.toJSON(message.status); + } + if (message.data !== undefined) { + obj.data = TransactionsOutput.toJSON(message.data); + } + if (message.chainId !== undefined && message.chainId !== 0) { + obj.chainId = Math.round(message.chainId); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsFromNodeResponse { + return TransactionsFromNodeResponse.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsFromNodeResponse { + const message = createBaseTransactionsFromNodeResponse(); + message.status = (object.status !== undefined && object.status !== null) + ? StreamStatus.fromPartial(object.status) + : undefined; + message.data = (object.data !== undefined && object.data !== null) + ? TransactionsOutput.fromPartial(object.data) + : undefined; + message.chainId = object.chainId ?? 0; + return message; + }, +}; + +export type FullnodeDataService = typeof FullnodeDataService; +export const FullnodeDataService = { + getTransactionsFromNode: { + path: "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + requestStream: false, + responseStream: true, + requestSerialize: (value: GetTransactionsFromNodeRequest) => + Buffer.from(GetTransactionsFromNodeRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetTransactionsFromNodeRequest.decode(value), + responseSerialize: (value: TransactionsFromNodeResponse) => + Buffer.from(TransactionsFromNodeResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => TransactionsFromNodeResponse.decode(value), + }, +} as const; + +export interface FullnodeDataServer extends UntypedServiceImplementation { + getTransactionsFromNode: handleServerStreamingCall; +} + +export interface FullnodeDataClient extends Client { + getTransactionsFromNode( + request: GetTransactionsFromNodeRequest, + options?: Partial, + ): ClientReadableStream; + getTransactionsFromNode( + request: GetTransactionsFromNodeRequest, + metadata?: Metadata, + options?: Partial, + ): ClientReadableStream; +} + +export const FullnodeDataClient = makeGenericClientConstructor( + FullnodeDataService, + "aptos.internal.fullnode.v1.FullnodeData", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): FullnodeDataClient; + service: typeof FullnodeDataService; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts b/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts new file mode 100644 index 0000000000000..3bb838d05bfce --- /dev/null +++ b/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts @@ -0,0 +1,280 @@ +/* eslint-disable */ +import { ChannelCredentials, Client, makeGenericClientConstructor, Metadata } from "@grpc/grpc-js"; +import type { + CallOptions, + ClientOptions, + ClientUnaryCall, + handleUnaryCall, + ServiceError, + UntypedServiceImplementation, +} from "@grpc/grpc-js"; +import _m0 from "protobufjs/minimal"; + +export interface NetworkMessage { + message?: Uint8Array | undefined; + messageType?: string | undefined; +} + +export interface Empty { +} + +function createBaseNetworkMessage(): NetworkMessage { + return { message: new Uint8Array(0), messageType: "" }; +} + +export const NetworkMessage = { + encode(message: NetworkMessage, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.message !== undefined && message.message.length !== 0) { + writer.uint32(10).bytes(message.message); + } + if (message.messageType !== undefined && message.messageType !== "") { + writer.uint32(18).string(message.messageType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): NetworkMessage { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseNetworkMessage(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.message = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.messageType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [NetworkMessage.encode(p).finish()]; + } + } else { + yield* [NetworkMessage.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [NetworkMessage.decode(p)]; + } + } else { + yield* [NetworkMessage.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): NetworkMessage { + return { + message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0), + messageType: isSet(object.messageType) ? globalThis.String(object.messageType) : "", + }; + }, + + toJSON(message: NetworkMessage): unknown { + const obj: any = {}; + if (message.message !== undefined && message.message.length !== 0) { + obj.message = base64FromBytes(message.message); + } + if (message.messageType !== undefined && message.messageType !== "") { + obj.messageType = message.messageType; + } + return obj; + }, + + create(base?: DeepPartial): NetworkMessage { + return NetworkMessage.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): NetworkMessage { + const message = createBaseNetworkMessage(); + message.message = object.message ?? new Uint8Array(0); + message.messageType = object.messageType ?? ""; + return message; + }, +}; + +function createBaseEmpty(): Empty { + return {}; +} + +export const Empty = { + encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Empty { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmpty(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Empty.encode(p).finish()]; + } + } else { + yield* [Empty.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Empty.decode(p)]; + } + } else { + yield* [Empty.decode(pkt as any)]; + } + } + }, + + fromJSON(_: any): Empty { + return {}; + }, + + toJSON(_: Empty): unknown { + const obj: any = {}; + return obj; + }, + + create(base?: DeepPartial): Empty { + return Empty.fromPartial(base ?? {}); + }, + fromPartial(_: DeepPartial): Empty { + const message = createBaseEmpty(); + return message; + }, +}; + +export type NetworkMessageServiceService = typeof NetworkMessageServiceService; +export const NetworkMessageServiceService = { + simpleMsgExchange: { + path: "/aptos.remote_executor.v1.NetworkMessageService/SimpleMsgExchange", + requestStream: false, + responseStream: false, + requestSerialize: (value: NetworkMessage) => Buffer.from(NetworkMessage.encode(value).finish()), + requestDeserialize: (value: Buffer) => NetworkMessage.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface NetworkMessageServiceServer extends UntypedServiceImplementation { + simpleMsgExchange: handleUnaryCall; +} + +export interface NetworkMessageServiceClient extends Client { + simpleMsgExchange( + request: NetworkMessage, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + simpleMsgExchange( + request: NetworkMessage, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + simpleMsgExchange( + request: NetworkMessage, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const NetworkMessageServiceClient = makeGenericClientConstructor( + NetworkMessageServiceService, + "aptos.remote_executor.v1.NetworkMessageService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): NetworkMessageServiceClient; + service: typeof NetworkMessageServiceService; +}; + +function bytesFromBase64(b64: string): Uint8Array { + if (globalThis.Buffer) { + return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); + } else { + const bin = globalThis.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} + +function base64FromBytes(arr: Uint8Array): string { + if (globalThis.Buffer) { + return globalThis.Buffer.from(arr).toString("base64"); + } else { + const bin: string[] = []; + arr.forEach((byte) => { + bin.push(globalThis.String.fromCharCode(byte)); + }); + return globalThis.btoa(bin.join("")); + } +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/transaction/v1/transaction.ts b/protos/typescript/src/aptos/transaction/v1/transaction.ts new file mode 100644 index 0000000000000..86b448ab0c616 --- /dev/null +++ b/protos/typescript/src/aptos/transaction/v1/transaction.ts @@ -0,0 +1,8439 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Timestamp } from "../../util/timestamp/timestamp"; + +export enum MoveTypes { + MOVE_TYPES_UNSPECIFIED = 0, + MOVE_TYPES_BOOL = 1, + MOVE_TYPES_U8 = 2, + MOVE_TYPES_U16 = 12, + MOVE_TYPES_U32 = 13, + MOVE_TYPES_U64 = 3, + MOVE_TYPES_U128 = 4, + MOVE_TYPES_U256 = 14, + MOVE_TYPES_ADDRESS = 5, + MOVE_TYPES_SIGNER = 6, + /** MOVE_TYPES_VECTOR - `{ items: Box }`, */ + MOVE_TYPES_VECTOR = 7, + /** MOVE_TYPES_STRUCT - `(MoveStructTag)`, */ + MOVE_TYPES_STRUCT = 8, + /** MOVE_TYPES_GENERIC_TYPE_PARAM - `{ index: u16 }``, */ + MOVE_TYPES_GENERIC_TYPE_PARAM = 9, + /** MOVE_TYPES_REFERENCE - `{ mutable: bool, to: Box }`, */ + MOVE_TYPES_REFERENCE = 10, + /** MOVE_TYPES_UNPARSABLE - `(String)`, */ + MOVE_TYPES_UNPARSABLE = 11, + UNRECOGNIZED = -1, +} + +export function moveTypesFromJSON(object: any): MoveTypes { + switch (object) { + case 0: + case "MOVE_TYPES_UNSPECIFIED": + return MoveTypes.MOVE_TYPES_UNSPECIFIED; + case 1: + case "MOVE_TYPES_BOOL": + return MoveTypes.MOVE_TYPES_BOOL; + case 2: + case "MOVE_TYPES_U8": + return MoveTypes.MOVE_TYPES_U8; + case 12: + case "MOVE_TYPES_U16": + return MoveTypes.MOVE_TYPES_U16; + case 13: + case "MOVE_TYPES_U32": + return MoveTypes.MOVE_TYPES_U32; + case 3: + case "MOVE_TYPES_U64": + return MoveTypes.MOVE_TYPES_U64; + case 4: + case "MOVE_TYPES_U128": + return MoveTypes.MOVE_TYPES_U128; + case 14: + case "MOVE_TYPES_U256": + return MoveTypes.MOVE_TYPES_U256; + case 5: + case "MOVE_TYPES_ADDRESS": + return MoveTypes.MOVE_TYPES_ADDRESS; + case 6: + case "MOVE_TYPES_SIGNER": + return MoveTypes.MOVE_TYPES_SIGNER; + case 7: + case "MOVE_TYPES_VECTOR": + return MoveTypes.MOVE_TYPES_VECTOR; + case 8: + case "MOVE_TYPES_STRUCT": + return MoveTypes.MOVE_TYPES_STRUCT; + case 9: + case "MOVE_TYPES_GENERIC_TYPE_PARAM": + return MoveTypes.MOVE_TYPES_GENERIC_TYPE_PARAM; + case 10: + case "MOVE_TYPES_REFERENCE": + return MoveTypes.MOVE_TYPES_REFERENCE; + case 11: + case "MOVE_TYPES_UNPARSABLE": + return MoveTypes.MOVE_TYPES_UNPARSABLE; + case -1: + case "UNRECOGNIZED": + default: + return MoveTypes.UNRECOGNIZED; + } +} + +export function moveTypesToJSON(object: MoveTypes): string { + switch (object) { + case MoveTypes.MOVE_TYPES_UNSPECIFIED: + return "MOVE_TYPES_UNSPECIFIED"; + case MoveTypes.MOVE_TYPES_BOOL: + return "MOVE_TYPES_BOOL"; + case MoveTypes.MOVE_TYPES_U8: + return "MOVE_TYPES_U8"; + case MoveTypes.MOVE_TYPES_U16: + return "MOVE_TYPES_U16"; + case MoveTypes.MOVE_TYPES_U32: + return "MOVE_TYPES_U32"; + case MoveTypes.MOVE_TYPES_U64: + return "MOVE_TYPES_U64"; + case MoveTypes.MOVE_TYPES_U128: + return "MOVE_TYPES_U128"; + case MoveTypes.MOVE_TYPES_U256: + return "MOVE_TYPES_U256"; + case MoveTypes.MOVE_TYPES_ADDRESS: + return "MOVE_TYPES_ADDRESS"; + case MoveTypes.MOVE_TYPES_SIGNER: + return "MOVE_TYPES_SIGNER"; + case MoveTypes.MOVE_TYPES_VECTOR: + return "MOVE_TYPES_VECTOR"; + case MoveTypes.MOVE_TYPES_STRUCT: + return "MOVE_TYPES_STRUCT"; + case MoveTypes.MOVE_TYPES_GENERIC_TYPE_PARAM: + return "MOVE_TYPES_GENERIC_TYPE_PARAM"; + case MoveTypes.MOVE_TYPES_REFERENCE: + return "MOVE_TYPES_REFERENCE"; + case MoveTypes.MOVE_TYPES_UNPARSABLE: + return "MOVE_TYPES_UNPARSABLE"; + case MoveTypes.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export enum MoveAbility { + MOVE_ABILITY_UNSPECIFIED = 0, + MOVE_ABILITY_COPY = 1, + MOVE_ABILITY_DROP = 2, + MOVE_ABILITY_STORE = 3, + MOVE_ABILITY_KEY = 4, + UNRECOGNIZED = -1, +} + +export function moveAbilityFromJSON(object: any): MoveAbility { + switch (object) { + case 0: + case "MOVE_ABILITY_UNSPECIFIED": + return MoveAbility.MOVE_ABILITY_UNSPECIFIED; + case 1: + case "MOVE_ABILITY_COPY": + return MoveAbility.MOVE_ABILITY_COPY; + case 2: + case "MOVE_ABILITY_DROP": + return MoveAbility.MOVE_ABILITY_DROP; + case 3: + case "MOVE_ABILITY_STORE": + return MoveAbility.MOVE_ABILITY_STORE; + case 4: + case "MOVE_ABILITY_KEY": + return MoveAbility.MOVE_ABILITY_KEY; + case -1: + case "UNRECOGNIZED": + default: + return MoveAbility.UNRECOGNIZED; + } +} + +export function moveAbilityToJSON(object: MoveAbility): string { + switch (object) { + case MoveAbility.MOVE_ABILITY_UNSPECIFIED: + return "MOVE_ABILITY_UNSPECIFIED"; + case MoveAbility.MOVE_ABILITY_COPY: + return "MOVE_ABILITY_COPY"; + case MoveAbility.MOVE_ABILITY_DROP: + return "MOVE_ABILITY_DROP"; + case MoveAbility.MOVE_ABILITY_STORE: + return "MOVE_ABILITY_STORE"; + case MoveAbility.MOVE_ABILITY_KEY: + return "MOVE_ABILITY_KEY"; + case MoveAbility.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +/** + * A block on Aptos holds transactions in chronological order (ordered by a transactions monotonically increasing `version` field) + * All blocks start with a `BlockMetadataTransaction`, and are followed by zero or more transactions. + * The next `BlockMetadataTransaction` denotes the end of the current block, and the start of the next one. + * + * The Block `height` is a strictly monotonically increasing count of the number of blocks, + * and there will never be a gap in the numbers. It is also a unique identifier: there will never be two blocks with + * the same `height`. + * + * The Genesis Transaction (version 0) is contained within the first block, which has a height of `0` + */ +export interface Block { + /** + * Timestamp represents the timestamp of the `BlockMetadataTransaction` (or `GenesisTransaction` for the genesis block) + * and every transaction in the `transactions` will have the same `timestamp` as the block. + */ + timestamp?: + | Timestamp + | undefined; + /** Height represents the block number and ultimately, is the count of `BlockMetadataTransaction` that happened on the chain. */ + height?: + | bigint + | undefined; + /** + * Transactions holds all transactions that happened in the Block, which is transactions that happened starting with (and including) + * a `BlockMetadataTransaction`, and every other transaction up to (but excluding) the next `BlockMetadataTransaction`. + */ + transactions?: + | Transaction[] + | undefined; + /** Chain ID informs us which chain we're trying to index, this is important to ensure that we're not mixing chains within a single pipeline. */ + chainId?: number | undefined; +} + +/** + * Transaction as it happened on the chain, there are 4 types of transactions: + * - User Transaction: a user initiated transaction to interact with the chain + * - Block Metadata Transaction: transactions generated by the chain to group together transactions forming a "block" + * - State Checkpoint Transaction: transactions generated by the chain so when validator agreed on a particular global state + * - Genesis Transaction: the first transaction of the chain, with all core contract and validator information baked in + */ +export interface Transaction { + timestamp?: Timestamp | undefined; + version?: bigint | undefined; + info?: TransactionInfo | undefined; + epoch?: bigint | undefined; + blockHeight?: bigint | undefined; + type?: Transaction_TransactionType | undefined; + blockMetadata?: BlockMetadataTransaction | undefined; + genesis?: GenesisTransaction | undefined; + stateCheckpoint?: StateCheckpointTransaction | undefined; + user?: UserTransaction | undefined; +} + +export enum Transaction_TransactionType { + TRANSACTION_TYPE_UNSPECIFIED = 0, + TRANSACTION_TYPE_GENESIS = 1, + TRANSACTION_TYPE_BLOCK_METADATA = 2, + TRANSACTION_TYPE_STATE_CHECKPOINT = 3, + TRANSACTION_TYPE_USER = 4, + UNRECOGNIZED = -1, +} + +export function transaction_TransactionTypeFromJSON(object: any): Transaction_TransactionType { + switch (object) { + case 0: + case "TRANSACTION_TYPE_UNSPECIFIED": + return Transaction_TransactionType.TRANSACTION_TYPE_UNSPECIFIED; + case 1: + case "TRANSACTION_TYPE_GENESIS": + return Transaction_TransactionType.TRANSACTION_TYPE_GENESIS; + case 2: + case "TRANSACTION_TYPE_BLOCK_METADATA": + return Transaction_TransactionType.TRANSACTION_TYPE_BLOCK_METADATA; + case 3: + case "TRANSACTION_TYPE_STATE_CHECKPOINT": + return Transaction_TransactionType.TRANSACTION_TYPE_STATE_CHECKPOINT; + case 4: + case "TRANSACTION_TYPE_USER": + return Transaction_TransactionType.TRANSACTION_TYPE_USER; + case -1: + case "UNRECOGNIZED": + default: + return Transaction_TransactionType.UNRECOGNIZED; + } +} + +export function transaction_TransactionTypeToJSON(object: Transaction_TransactionType): string { + switch (object) { + case Transaction_TransactionType.TRANSACTION_TYPE_UNSPECIFIED: + return "TRANSACTION_TYPE_UNSPECIFIED"; + case Transaction_TransactionType.TRANSACTION_TYPE_GENESIS: + return "TRANSACTION_TYPE_GENESIS"; + case Transaction_TransactionType.TRANSACTION_TYPE_BLOCK_METADATA: + return "TRANSACTION_TYPE_BLOCK_METADATA"; + case Transaction_TransactionType.TRANSACTION_TYPE_STATE_CHECKPOINT: + return "TRANSACTION_TYPE_STATE_CHECKPOINT"; + case Transaction_TransactionType.TRANSACTION_TYPE_USER: + return "TRANSACTION_TYPE_USER"; + case Transaction_TransactionType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface BlockMetadataTransaction { + id?: string | undefined; + round?: bigint | undefined; + events?: Event[] | undefined; + previousBlockVotesBitvec?: Uint8Array | undefined; + proposer?: string | undefined; + failedProposerIndices?: number[] | undefined; +} + +export interface GenesisTransaction { + payload?: WriteSet | undefined; + events?: Event[] | undefined; +} + +export interface StateCheckpointTransaction { +} + +export interface UserTransaction { + request?: UserTransactionRequest | undefined; + events?: Event[] | undefined; +} + +export interface Event { + key?: EventKey | undefined; + sequenceNumber?: bigint | undefined; + type?: MoveType | undefined; + typeStr?: string | undefined; + data?: string | undefined; +} + +export interface TransactionInfo { + hash?: Uint8Array | undefined; + stateChangeHash?: Uint8Array | undefined; + eventRootHash?: Uint8Array | undefined; + stateCheckpointHash?: Uint8Array | undefined; + gasUsed?: bigint | undefined; + success?: boolean | undefined; + vmStatus?: string | undefined; + accumulatorRootHash?: Uint8Array | undefined; + changes?: WriteSetChange[] | undefined; +} + +export interface EventKey { + creationNumber?: bigint | undefined; + accountAddress?: string | undefined; +} + +export interface UserTransactionRequest { + sender?: string | undefined; + sequenceNumber?: bigint | undefined; + maxGasAmount?: bigint | undefined; + gasUnitPrice?: bigint | undefined; + expirationTimestampSecs?: Timestamp | undefined; + payload?: TransactionPayload | undefined; + signature?: Signature | undefined; +} + +export interface WriteSet { + writeSetType?: WriteSet_WriteSetType | undefined; + scriptWriteSet?: ScriptWriteSet | undefined; + directWriteSet?: DirectWriteSet | undefined; +} + +export enum WriteSet_WriteSetType { + WRITE_SET_TYPE_UNSPECIFIED = 0, + WRITE_SET_TYPE_SCRIPT_WRITE_SET = 1, + WRITE_SET_TYPE_DIRECT_WRITE_SET = 2, + UNRECOGNIZED = -1, +} + +export function writeSet_WriteSetTypeFromJSON(object: any): WriteSet_WriteSetType { + switch (object) { + case 0: + case "WRITE_SET_TYPE_UNSPECIFIED": + return WriteSet_WriteSetType.WRITE_SET_TYPE_UNSPECIFIED; + case 1: + case "WRITE_SET_TYPE_SCRIPT_WRITE_SET": + return WriteSet_WriteSetType.WRITE_SET_TYPE_SCRIPT_WRITE_SET; + case 2: + case "WRITE_SET_TYPE_DIRECT_WRITE_SET": + return WriteSet_WriteSetType.WRITE_SET_TYPE_DIRECT_WRITE_SET; + case -1: + case "UNRECOGNIZED": + default: + return WriteSet_WriteSetType.UNRECOGNIZED; + } +} + +export function writeSet_WriteSetTypeToJSON(object: WriteSet_WriteSetType): string { + switch (object) { + case WriteSet_WriteSetType.WRITE_SET_TYPE_UNSPECIFIED: + return "WRITE_SET_TYPE_UNSPECIFIED"; + case WriteSet_WriteSetType.WRITE_SET_TYPE_SCRIPT_WRITE_SET: + return "WRITE_SET_TYPE_SCRIPT_WRITE_SET"; + case WriteSet_WriteSetType.WRITE_SET_TYPE_DIRECT_WRITE_SET: + return "WRITE_SET_TYPE_DIRECT_WRITE_SET"; + case WriteSet_WriteSetType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface ScriptWriteSet { + executeAs?: string | undefined; + script?: ScriptPayload | undefined; +} + +export interface DirectWriteSet { + writeSetChange?: WriteSetChange[] | undefined; + events?: Event[] | undefined; +} + +export interface WriteSetChange { + type?: WriteSetChange_Type | undefined; + deleteModule?: DeleteModule | undefined; + deleteResource?: DeleteResource | undefined; + deleteTableItem?: DeleteTableItem | undefined; + writeModule?: WriteModule | undefined; + writeResource?: WriteResource | undefined; + writeTableItem?: WriteTableItem | undefined; +} + +export enum WriteSetChange_Type { + TYPE_UNSPECIFIED = 0, + TYPE_DELETE_MODULE = 1, + TYPE_DELETE_RESOURCE = 2, + TYPE_DELETE_TABLE_ITEM = 3, + TYPE_WRITE_MODULE = 4, + TYPE_WRITE_RESOURCE = 5, + TYPE_WRITE_TABLE_ITEM = 6, + UNRECOGNIZED = -1, +} + +export function writeSetChange_TypeFromJSON(object: any): WriteSetChange_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return WriteSetChange_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_DELETE_MODULE": + return WriteSetChange_Type.TYPE_DELETE_MODULE; + case 2: + case "TYPE_DELETE_RESOURCE": + return WriteSetChange_Type.TYPE_DELETE_RESOURCE; + case 3: + case "TYPE_DELETE_TABLE_ITEM": + return WriteSetChange_Type.TYPE_DELETE_TABLE_ITEM; + case 4: + case "TYPE_WRITE_MODULE": + return WriteSetChange_Type.TYPE_WRITE_MODULE; + case 5: + case "TYPE_WRITE_RESOURCE": + return WriteSetChange_Type.TYPE_WRITE_RESOURCE; + case 6: + case "TYPE_WRITE_TABLE_ITEM": + return WriteSetChange_Type.TYPE_WRITE_TABLE_ITEM; + case -1: + case "UNRECOGNIZED": + default: + return WriteSetChange_Type.UNRECOGNIZED; + } +} + +export function writeSetChange_TypeToJSON(object: WriteSetChange_Type): string { + switch (object) { + case WriteSetChange_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case WriteSetChange_Type.TYPE_DELETE_MODULE: + return "TYPE_DELETE_MODULE"; + case WriteSetChange_Type.TYPE_DELETE_RESOURCE: + return "TYPE_DELETE_RESOURCE"; + case WriteSetChange_Type.TYPE_DELETE_TABLE_ITEM: + return "TYPE_DELETE_TABLE_ITEM"; + case WriteSetChange_Type.TYPE_WRITE_MODULE: + return "TYPE_WRITE_MODULE"; + case WriteSetChange_Type.TYPE_WRITE_RESOURCE: + return "TYPE_WRITE_RESOURCE"; + case WriteSetChange_Type.TYPE_WRITE_TABLE_ITEM: + return "TYPE_WRITE_TABLE_ITEM"; + case WriteSetChange_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface DeleteModule { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + module?: MoveModuleId | undefined; +} + +export interface DeleteResource { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + type?: MoveStructTag | undefined; + typeStr?: string | undefined; +} + +export interface DeleteTableItem { + stateKeyHash?: Uint8Array | undefined; + handle?: string | undefined; + key?: string | undefined; + data?: DeleteTableData | undefined; +} + +export interface DeleteTableData { + key?: string | undefined; + keyType?: string | undefined; +} + +export interface WriteModule { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + data?: MoveModuleBytecode | undefined; +} + +export interface WriteResource { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + type?: MoveStructTag | undefined; + typeStr?: string | undefined; + data?: string | undefined; +} + +export interface WriteTableData { + key?: string | undefined; + keyType?: string | undefined; + value?: string | undefined; + valueType?: string | undefined; +} + +export interface WriteTableItem { + stateKeyHash?: Uint8Array | undefined; + handle?: string | undefined; + key?: string | undefined; + data?: WriteTableData | undefined; +} + +export interface TransactionPayload { + type?: TransactionPayload_Type | undefined; + entryFunctionPayload?: EntryFunctionPayload | undefined; + scriptPayload?: ScriptPayload | undefined; + moduleBundlePayload?: ModuleBundlePayload | undefined; + writeSetPayload?: WriteSetPayload | undefined; + multisigPayload?: MultisigPayload | undefined; +} + +export enum TransactionPayload_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ENTRY_FUNCTION_PAYLOAD = 1, + TYPE_SCRIPT_PAYLOAD = 2, + TYPE_MODULE_BUNDLE_PAYLOAD = 3, + TYPE_WRITE_SET_PAYLOAD = 4, + TYPE_MULTISIG_PAYLOAD = 5, + UNRECOGNIZED = -1, +} + +export function transactionPayload_TypeFromJSON(object: any): TransactionPayload_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return TransactionPayload_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ENTRY_FUNCTION_PAYLOAD": + return TransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD; + case 2: + case "TYPE_SCRIPT_PAYLOAD": + return TransactionPayload_Type.TYPE_SCRIPT_PAYLOAD; + case 3: + case "TYPE_MODULE_BUNDLE_PAYLOAD": + return TransactionPayload_Type.TYPE_MODULE_BUNDLE_PAYLOAD; + case 4: + case "TYPE_WRITE_SET_PAYLOAD": + return TransactionPayload_Type.TYPE_WRITE_SET_PAYLOAD; + case 5: + case "TYPE_MULTISIG_PAYLOAD": + return TransactionPayload_Type.TYPE_MULTISIG_PAYLOAD; + case -1: + case "UNRECOGNIZED": + default: + return TransactionPayload_Type.UNRECOGNIZED; + } +} + +export function transactionPayload_TypeToJSON(object: TransactionPayload_Type): string { + switch (object) { + case TransactionPayload_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case TransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD: + return "TYPE_ENTRY_FUNCTION_PAYLOAD"; + case TransactionPayload_Type.TYPE_SCRIPT_PAYLOAD: + return "TYPE_SCRIPT_PAYLOAD"; + case TransactionPayload_Type.TYPE_MODULE_BUNDLE_PAYLOAD: + return "TYPE_MODULE_BUNDLE_PAYLOAD"; + case TransactionPayload_Type.TYPE_WRITE_SET_PAYLOAD: + return "TYPE_WRITE_SET_PAYLOAD"; + case TransactionPayload_Type.TYPE_MULTISIG_PAYLOAD: + return "TYPE_MULTISIG_PAYLOAD"; + case TransactionPayload_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface EntryFunctionPayload { + function?: EntryFunctionId | undefined; + typeArguments?: MoveType[] | undefined; + arguments?: string[] | undefined; + entryFunctionIdStr?: string | undefined; +} + +export interface MoveScriptBytecode { + bytecode?: Uint8Array | undefined; + abi?: MoveFunction | undefined; +} + +export interface ScriptPayload { + code?: MoveScriptBytecode | undefined; + typeArguments?: MoveType[] | undefined; + arguments?: string[] | undefined; +} + +export interface MultisigPayload { + multisigAddress?: string | undefined; + transactionPayload?: MultisigTransactionPayload | undefined; +} + +export interface MultisigTransactionPayload { + type?: MultisigTransactionPayload_Type | undefined; + entryFunctionPayload?: EntryFunctionPayload | undefined; +} + +export enum MultisigTransactionPayload_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ENTRY_FUNCTION_PAYLOAD = 1, + UNRECOGNIZED = -1, +} + +export function multisigTransactionPayload_TypeFromJSON(object: any): MultisigTransactionPayload_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return MultisigTransactionPayload_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ENTRY_FUNCTION_PAYLOAD": + return MultisigTransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD; + case -1: + case "UNRECOGNIZED": + default: + return MultisigTransactionPayload_Type.UNRECOGNIZED; + } +} + +export function multisigTransactionPayload_TypeToJSON(object: MultisigTransactionPayload_Type): string { + switch (object) { + case MultisigTransactionPayload_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case MultisigTransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD: + return "TYPE_ENTRY_FUNCTION_PAYLOAD"; + case MultisigTransactionPayload_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface ModuleBundlePayload { + modules?: MoveModuleBytecode[] | undefined; +} + +export interface MoveModuleBytecode { + bytecode?: Uint8Array | undefined; + abi?: MoveModule | undefined; +} + +export interface MoveModule { + address?: string | undefined; + name?: string | undefined; + friends?: MoveModuleId[] | undefined; + exposedFunctions?: MoveFunction[] | undefined; + structs?: MoveStruct[] | undefined; +} + +export interface MoveFunction { + name?: string | undefined; + visibility?: MoveFunction_Visibility | undefined; + isEntry?: boolean | undefined; + genericTypeParams?: MoveFunctionGenericTypeParam[] | undefined; + params?: MoveType[] | undefined; + return?: MoveType[] | undefined; +} + +export enum MoveFunction_Visibility { + VISIBILITY_UNSPECIFIED = 0, + VISIBILITY_PRIVATE = 1, + VISIBILITY_PUBLIC = 2, + VISIBILITY_FRIEND = 3, + UNRECOGNIZED = -1, +} + +export function moveFunction_VisibilityFromJSON(object: any): MoveFunction_Visibility { + switch (object) { + case 0: + case "VISIBILITY_UNSPECIFIED": + return MoveFunction_Visibility.VISIBILITY_UNSPECIFIED; + case 1: + case "VISIBILITY_PRIVATE": + return MoveFunction_Visibility.VISIBILITY_PRIVATE; + case 2: + case "VISIBILITY_PUBLIC": + return MoveFunction_Visibility.VISIBILITY_PUBLIC; + case 3: + case "VISIBILITY_FRIEND": + return MoveFunction_Visibility.VISIBILITY_FRIEND; + case -1: + case "UNRECOGNIZED": + default: + return MoveFunction_Visibility.UNRECOGNIZED; + } +} + +export function moveFunction_VisibilityToJSON(object: MoveFunction_Visibility): string { + switch (object) { + case MoveFunction_Visibility.VISIBILITY_UNSPECIFIED: + return "VISIBILITY_UNSPECIFIED"; + case MoveFunction_Visibility.VISIBILITY_PRIVATE: + return "VISIBILITY_PRIVATE"; + case MoveFunction_Visibility.VISIBILITY_PUBLIC: + return "VISIBILITY_PUBLIC"; + case MoveFunction_Visibility.VISIBILITY_FRIEND: + return "VISIBILITY_FRIEND"; + case MoveFunction_Visibility.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface MoveStruct { + name?: string | undefined; + isNative?: boolean | undefined; + abilities?: MoveAbility[] | undefined; + genericTypeParams?: MoveStructGenericTypeParam[] | undefined; + fields?: MoveStructField[] | undefined; +} + +export interface MoveStructGenericTypeParam { + constraints?: MoveAbility[] | undefined; + isPhantom?: boolean | undefined; +} + +export interface MoveStructField { + name?: string | undefined; + type?: MoveType | undefined; +} + +export interface MoveFunctionGenericTypeParam { + constraints?: MoveAbility[] | undefined; +} + +export interface MoveType { + type?: MoveTypes | undefined; + vector?: MoveType | undefined; + struct?: MoveStructTag | undefined; + genericTypeParamIndex?: number | undefined; + reference?: MoveType_ReferenceType | undefined; + unparsable?: string | undefined; +} + +export interface MoveType_ReferenceType { + mutable?: boolean | undefined; + to?: MoveType | undefined; +} + +export interface WriteSetPayload { + writeSet?: WriteSet | undefined; +} + +export interface EntryFunctionId { + module?: MoveModuleId | undefined; + name?: string | undefined; +} + +export interface MoveModuleId { + address?: string | undefined; + name?: string | undefined; +} + +export interface MoveStructTag { + address?: string | undefined; + module?: string | undefined; + name?: string | undefined; + genericTypeParams?: MoveType[] | undefined; +} + +export interface Signature { + type?: Signature_Type | undefined; + ed25519?: Ed25519Signature | undefined; + multiEd25519?: MultiEd25519Signature | undefined; + multiAgent?: MultiAgentSignature | undefined; + feePayer?: FeePayerSignature | undefined; + singleSender?: SingleSender | undefined; +} + +export enum Signature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_MULTI_ED25519 = 2, + TYPE_MULTI_AGENT = 3, + TYPE_FEE_PAYER = 4, + TYPE_SINGLE_SENDER = 5, + UNRECOGNIZED = -1, +} + +export function signature_TypeFromJSON(object: any): Signature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return Signature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return Signature_Type.TYPE_ED25519; + case 2: + case "TYPE_MULTI_ED25519": + return Signature_Type.TYPE_MULTI_ED25519; + case 3: + case "TYPE_MULTI_AGENT": + return Signature_Type.TYPE_MULTI_AGENT; + case 4: + case "TYPE_FEE_PAYER": + return Signature_Type.TYPE_FEE_PAYER; + case 5: + case "TYPE_SINGLE_SENDER": + return Signature_Type.TYPE_SINGLE_SENDER; + case -1: + case "UNRECOGNIZED": + default: + return Signature_Type.UNRECOGNIZED; + } +} + +export function signature_TypeToJSON(object: Signature_Type): string { + switch (object) { + case Signature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case Signature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case Signature_Type.TYPE_MULTI_ED25519: + return "TYPE_MULTI_ED25519"; + case Signature_Type.TYPE_MULTI_AGENT: + return "TYPE_MULTI_AGENT"; + case Signature_Type.TYPE_FEE_PAYER: + return "TYPE_FEE_PAYER"; + case Signature_Type.TYPE_SINGLE_SENDER: + return "TYPE_SINGLE_SENDER"; + case Signature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface Ed25519Signature { + publicKey?: Uint8Array | undefined; + signature?: Uint8Array | undefined; +} + +export interface MultiEd25519Signature { + publicKeys?: Uint8Array[] | undefined; + signatures?: Uint8Array[] | undefined; + threshold?: number | undefined; + publicKeyIndices?: number[] | undefined; +} + +export interface MultiAgentSignature { + sender?: AccountSignature | undefined; + secondarySignerAddresses?: string[] | undefined; + secondarySigners?: AccountSignature[] | undefined; +} + +export interface FeePayerSignature { + sender?: AccountSignature | undefined; + secondarySignerAddresses?: string[] | undefined; + secondarySigners?: AccountSignature[] | undefined; + feePayerAddress?: string | undefined; + feePayerSigner?: AccountSignature | undefined; +} + +export interface AnyPublicKey { + type?: AnyPublicKey_Type | undefined; + publicKey?: Uint8Array | undefined; +} + +export enum AnyPublicKey_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_SECP256K1_ECDSA = 2, + UNRECOGNIZED = -1, +} + +export function anyPublicKey_TypeFromJSON(object: any): AnyPublicKey_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AnyPublicKey_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AnyPublicKey_Type.TYPE_ED25519; + case 2: + case "TYPE_SECP256K1_ECDSA": + return AnyPublicKey_Type.TYPE_SECP256K1_ECDSA; + case -1: + case "UNRECOGNIZED": + default: + return AnyPublicKey_Type.UNRECOGNIZED; + } +} + +export function anyPublicKey_TypeToJSON(object: AnyPublicKey_Type): string { + switch (object) { + case AnyPublicKey_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AnyPublicKey_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AnyPublicKey_Type.TYPE_SECP256K1_ECDSA: + return "TYPE_SECP256K1_ECDSA"; + case AnyPublicKey_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface AnySignature { + type?: AnySignature_Type | undefined; + signature?: Uint8Array | undefined; +} + +export enum AnySignature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_SECP256K1_ECDSA = 2, + UNRECOGNIZED = -1, +} + +export function anySignature_TypeFromJSON(object: any): AnySignature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AnySignature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AnySignature_Type.TYPE_ED25519; + case 2: + case "TYPE_SECP256K1_ECDSA": + return AnySignature_Type.TYPE_SECP256K1_ECDSA; + case -1: + case "UNRECOGNIZED": + default: + return AnySignature_Type.UNRECOGNIZED; + } +} + +export function anySignature_TypeToJSON(object: AnySignature_Type): string { + switch (object) { + case AnySignature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AnySignature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AnySignature_Type.TYPE_SECP256K1_ECDSA: + return "TYPE_SECP256K1_ECDSA"; + case AnySignature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface SingleKeySignature { + publicKey?: AnyPublicKey | undefined; + signature?: AnySignature | undefined; +} + +export interface IndexedSignature { + index?: number | undefined; + signature?: AnySignature | undefined; +} + +export interface MultiKeySignature { + publicKeys?: AnyPublicKey[] | undefined; + signatures?: IndexedSignature[] | undefined; + signaturesRequired?: number | undefined; +} + +export interface SingleSender { + sender?: AccountSignature | undefined; +} + +export interface AccountSignature { + type?: AccountSignature_Type | undefined; + ed25519?: Ed25519Signature | undefined; + multiEd25519?: MultiEd25519Signature | undefined; + singleKeySignature?: SingleKeySignature | undefined; + multiKeySignature?: MultiKeySignature | undefined; +} + +export enum AccountSignature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_MULTI_ED25519 = 2, + TYPE_SINGLE_KEY = 3, + TYPE_MULTI_KEY = 4, + UNRECOGNIZED = -1, +} + +export function accountSignature_TypeFromJSON(object: any): AccountSignature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AccountSignature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AccountSignature_Type.TYPE_ED25519; + case 2: + case "TYPE_MULTI_ED25519": + return AccountSignature_Type.TYPE_MULTI_ED25519; + case 3: + case "TYPE_SINGLE_KEY": + return AccountSignature_Type.TYPE_SINGLE_KEY; + case 4: + case "TYPE_MULTI_KEY": + return AccountSignature_Type.TYPE_MULTI_KEY; + case -1: + case "UNRECOGNIZED": + default: + return AccountSignature_Type.UNRECOGNIZED; + } +} + +export function accountSignature_TypeToJSON(object: AccountSignature_Type): string { + switch (object) { + case AccountSignature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AccountSignature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AccountSignature_Type.TYPE_MULTI_ED25519: + return "TYPE_MULTI_ED25519"; + case AccountSignature_Type.TYPE_SINGLE_KEY: + return "TYPE_SINGLE_KEY"; + case AccountSignature_Type.TYPE_MULTI_KEY: + return "TYPE_MULTI_KEY"; + case AccountSignature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +function createBaseBlock(): Block { + return { timestamp: undefined, height: BigInt("0"), transactions: [], chainId: 0 }; +} + +export const Block = { + encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.timestamp !== undefined) { + Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); + } + if (message.height !== undefined && message.height !== BigInt("0")) { + if (BigInt.asUintN(64, message.height) !== message.height) { + throw new Error("value provided for field message.height of type uint64 too large"); + } + writer.uint32(16).uint64(message.height.toString()); + } + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.chainId !== undefined && message.chainId !== 0) { + writer.uint32(32).uint32(message.chainId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Block { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.timestamp = Timestamp.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.height = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.chainId = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Block.encode(p).finish()]; + } + } else { + yield* [Block.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Block.decode(p)]; + } + } else { + yield* [Block.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Block { + return { + timestamp: isSet(object.timestamp) ? Timestamp.fromJSON(object.timestamp) : undefined, + height: isSet(object.height) ? BigInt(object.height) : BigInt("0"), + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0, + }; + }, + + toJSON(message: Block): unknown { + const obj: any = {}; + if (message.timestamp !== undefined) { + obj.timestamp = Timestamp.toJSON(message.timestamp); + } + if (message.height !== undefined && message.height !== BigInt("0")) { + obj.height = message.height.toString(); + } + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + if (message.chainId !== undefined && message.chainId !== 0) { + obj.chainId = Math.round(message.chainId); + } + return obj; + }, + + create(base?: DeepPartial): Block { + return Block.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Block { + const message = createBaseBlock(); + message.timestamp = (object.timestamp !== undefined && object.timestamp !== null) + ? Timestamp.fromPartial(object.timestamp) + : undefined; + message.height = object.height ?? BigInt("0"); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + message.chainId = object.chainId ?? 0; + return message; + }, +}; + +function createBaseTransaction(): Transaction { + return { + timestamp: undefined, + version: BigInt("0"), + info: undefined, + epoch: BigInt("0"), + blockHeight: BigInt("0"), + type: 0, + blockMetadata: undefined, + genesis: undefined, + stateCheckpoint: undefined, + user: undefined, + }; +} + +export const Transaction = { + encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.timestamp !== undefined) { + Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); + } + if (message.version !== undefined && message.version !== BigInt("0")) { + if (BigInt.asUintN(64, message.version) !== message.version) { + throw new Error("value provided for field message.version of type uint64 too large"); + } + writer.uint32(16).uint64(message.version.toString()); + } + if (message.info !== undefined) { + TransactionInfo.encode(message.info, writer.uint32(26).fork()).ldelim(); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + if (BigInt.asUintN(64, message.epoch) !== message.epoch) { + throw new Error("value provided for field message.epoch of type uint64 too large"); + } + writer.uint32(32).uint64(message.epoch.toString()); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + if (BigInt.asUintN(64, message.blockHeight) !== message.blockHeight) { + throw new Error("value provided for field message.blockHeight of type uint64 too large"); + } + writer.uint32(40).uint64(message.blockHeight.toString()); + } + if (message.type !== undefined && message.type !== 0) { + writer.uint32(48).int32(message.type); + } + if (message.blockMetadata !== undefined) { + BlockMetadataTransaction.encode(message.blockMetadata, writer.uint32(58).fork()).ldelim(); + } + if (message.genesis !== undefined) { + GenesisTransaction.encode(message.genesis, writer.uint32(66).fork()).ldelim(); + } + if (message.stateCheckpoint !== undefined) { + StateCheckpointTransaction.encode(message.stateCheckpoint, writer.uint32(74).fork()).ldelim(); + } + if (message.user !== undefined) { + UserTransaction.encode(message.user, writer.uint32(82).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Transaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.timestamp = Timestamp.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.version = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.info = TransactionInfo.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.epoch = longToBigint(reader.uint64() as Long); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.blockHeight = longToBigint(reader.uint64() as Long); + continue; + case 6: + if (tag !== 48) { + break; + } + + message.type = reader.int32() as any; + continue; + case 7: + if (tag !== 58) { + break; + } + + message.blockMetadata = BlockMetadataTransaction.decode(reader, reader.uint32()); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.genesis = GenesisTransaction.decode(reader, reader.uint32()); + continue; + case 9: + if (tag !== 74) { + break; + } + + message.stateCheckpoint = StateCheckpointTransaction.decode(reader, reader.uint32()); + continue; + case 10: + if (tag !== 82) { + break; + } + + message.user = UserTransaction.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.encode(p).finish()]; + } + } else { + yield* [Transaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.decode(p)]; + } + } else { + yield* [Transaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Transaction { + return { + timestamp: isSet(object.timestamp) ? Timestamp.fromJSON(object.timestamp) : undefined, + version: isSet(object.version) ? BigInt(object.version) : BigInt("0"), + info: isSet(object.info) ? TransactionInfo.fromJSON(object.info) : undefined, + epoch: isSet(object.epoch) ? BigInt(object.epoch) : BigInt("0"), + blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight) : BigInt("0"), + type: isSet(object.type) ? transaction_TransactionTypeFromJSON(object.type) : 0, + blockMetadata: isSet(object.blockMetadata) ? BlockMetadataTransaction.fromJSON(object.blockMetadata) : undefined, + genesis: isSet(object.genesis) ? GenesisTransaction.fromJSON(object.genesis) : undefined, + stateCheckpoint: isSet(object.stateCheckpoint) + ? StateCheckpointTransaction.fromJSON(object.stateCheckpoint) + : undefined, + user: isSet(object.user) ? UserTransaction.fromJSON(object.user) : undefined, + }; + }, + + toJSON(message: Transaction): unknown { + const obj: any = {}; + if (message.timestamp !== undefined) { + obj.timestamp = Timestamp.toJSON(message.timestamp); + } + if (message.version !== undefined && message.version !== BigInt("0")) { + obj.version = message.version.toString(); + } + if (message.info !== undefined) { + obj.info = TransactionInfo.toJSON(message.info); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + obj.epoch = message.epoch.toString(); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + obj.blockHeight = message.blockHeight.toString(); + } + if (message.type !== undefined && message.type !== 0) { + obj.type = transaction_TransactionTypeToJSON(message.type); + } + if (message.blockMetadata !== undefined) { + obj.blockMetadata = BlockMetadataTransaction.toJSON(message.blockMetadata); + } + if (message.genesis !== undefined) { + obj.genesis = GenesisTransaction.toJSON(message.genesis); + } + if (message.stateCheckpoint !== undefined) { + obj.stateCheckpoint = StateCheckpointTransaction.toJSON(message.stateCheckpoint); + } + if (message.user !== undefined) { + obj.user = UserTransaction.toJSON(message.user); + } + return obj; + }, + + create(base?: DeepPartial): Transaction { + return Transaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Transaction { + const message = createBaseTransaction(); + message.timestamp = (object.timestamp !== undefined && object.timestamp !== null) + ? Timestamp.fromPartial(object.timestamp) + : undefined; + message.version = object.version ?? BigInt("0"); + message.info = (object.info !== undefined && object.info !== null) + ? TransactionInfo.fromPartial(object.info) + : undefined; + message.epoch = object.epoch ?? BigInt("0"); + message.blockHeight = object.blockHeight ?? BigInt("0"); + message.type = object.type ?? 0; + message.blockMetadata = (object.blockMetadata !== undefined && object.blockMetadata !== null) + ? BlockMetadataTransaction.fromPartial(object.blockMetadata) + : undefined; + message.genesis = (object.genesis !== undefined && object.genesis !== null) + ? GenesisTransaction.fromPartial(object.genesis) + : undefined; + message.stateCheckpoint = (object.stateCheckpoint !== undefined && object.stateCheckpoint !== null) + ? StateCheckpointTransaction.fromPartial(object.stateCheckpoint) + : undefined; + message.user = (object.user !== undefined && object.user !== null) + ? UserTransaction.fromPartial(object.user) + : undefined; + return message; + }, +}; + +function createBaseBlockMetadataTransaction(): BlockMetadataTransaction { + return { + id: "", + round: BigInt("0"), + events: [], + previousBlockVotesBitvec: new Uint8Array(0), + proposer: "", + failedProposerIndices: [], + }; +} + +export const BlockMetadataTransaction = { + encode(message: BlockMetadataTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== undefined && message.id !== "") { + writer.uint32(10).string(message.id); + } + if (message.round !== undefined && message.round !== BigInt("0")) { + if (BigInt.asUintN(64, message.round) !== message.round) { + throw new Error("value provided for field message.round of type uint64 too large"); + } + writer.uint32(16).uint64(message.round.toString()); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.previousBlockVotesBitvec !== undefined && message.previousBlockVotesBitvec.length !== 0) { + writer.uint32(34).bytes(message.previousBlockVotesBitvec); + } + if (message.proposer !== undefined && message.proposer !== "") { + writer.uint32(42).string(message.proposer); + } + if (message.failedProposerIndices !== undefined && message.failedProposerIndices.length !== 0) { + writer.uint32(50).fork(); + for (const v of message.failedProposerIndices) { + writer.uint32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockMetadataTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockMetadataTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.round = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.previousBlockVotesBitvec = reader.bytes(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.proposer = reader.string(); + continue; + case 6: + if (tag === 48) { + message.failedProposerIndices!.push(reader.uint32()); + + continue; + } + + if (tag === 50) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.failedProposerIndices!.push(reader.uint32()); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [BlockMetadataTransaction.encode(p).finish()]; + } + } else { + yield* [BlockMetadataTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [BlockMetadataTransaction.decode(p)]; + } + } else { + yield* [BlockMetadataTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): BlockMetadataTransaction { + return { + id: isSet(object.id) ? globalThis.String(object.id) : "", + round: isSet(object.round) ? BigInt(object.round) : BigInt("0"), + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + previousBlockVotesBitvec: isSet(object.previousBlockVotesBitvec) + ? bytesFromBase64(object.previousBlockVotesBitvec) + : new Uint8Array(0), + proposer: isSet(object.proposer) ? globalThis.String(object.proposer) : "", + failedProposerIndices: globalThis.Array.isArray(object?.failedProposerIndices) + ? object.failedProposerIndices.map((e: any) => globalThis.Number(e)) + : [], + }; + }, + + toJSON(message: BlockMetadataTransaction): unknown { + const obj: any = {}; + if (message.id !== undefined && message.id !== "") { + obj.id = message.id; + } + if (message.round !== undefined && message.round !== BigInt("0")) { + obj.round = message.round.toString(); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + if (message.previousBlockVotesBitvec !== undefined && message.previousBlockVotesBitvec.length !== 0) { + obj.previousBlockVotesBitvec = base64FromBytes(message.previousBlockVotesBitvec); + } + if (message.proposer !== undefined && message.proposer !== "") { + obj.proposer = message.proposer; + } + if (message.failedProposerIndices?.length) { + obj.failedProposerIndices = message.failedProposerIndices.map((e) => Math.round(e)); + } + return obj; + }, + + create(base?: DeepPartial): BlockMetadataTransaction { + return BlockMetadataTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): BlockMetadataTransaction { + const message = createBaseBlockMetadataTransaction(); + message.id = object.id ?? ""; + message.round = object.round ?? BigInt("0"); + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + message.previousBlockVotesBitvec = object.previousBlockVotesBitvec ?? new Uint8Array(0); + message.proposer = object.proposer ?? ""; + message.failedProposerIndices = object.failedProposerIndices?.map((e) => e) || []; + return message; + }, +}; + +function createBaseGenesisTransaction(): GenesisTransaction { + return { payload: undefined, events: [] }; +} + +export const GenesisTransaction = { + encode(message: GenesisTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.payload !== undefined) { + WriteSet.encode(message.payload, writer.uint32(10).fork()).ldelim(); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.payload = WriteSet.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GenesisTransaction.encode(p).finish()]; + } + } else { + yield* [GenesisTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GenesisTransaction.decode(p)]; + } + } else { + yield* [GenesisTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GenesisTransaction { + return { + payload: isSet(object.payload) ? WriteSet.fromJSON(object.payload) : undefined, + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: GenesisTransaction): unknown { + const obj: any = {}; + if (message.payload !== undefined) { + obj.payload = WriteSet.toJSON(message.payload); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): GenesisTransaction { + return GenesisTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GenesisTransaction { + const message = createBaseGenesisTransaction(); + message.payload = (object.payload !== undefined && object.payload !== null) + ? WriteSet.fromPartial(object.payload) + : undefined; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseStateCheckpointTransaction(): StateCheckpointTransaction { + return {}; +} + +export const StateCheckpointTransaction = { + encode(_: StateCheckpointTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): StateCheckpointTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStateCheckpointTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StateCheckpointTransaction.encode(p).finish()]; + } + } else { + yield* [StateCheckpointTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StateCheckpointTransaction.decode(p)]; + } + } else { + yield* [StateCheckpointTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(_: any): StateCheckpointTransaction { + return {}; + }, + + toJSON(_: StateCheckpointTransaction): unknown { + const obj: any = {}; + return obj; + }, + + create(base?: DeepPartial): StateCheckpointTransaction { + return StateCheckpointTransaction.fromPartial(base ?? {}); + }, + fromPartial(_: DeepPartial): StateCheckpointTransaction { + const message = createBaseStateCheckpointTransaction(); + return message; + }, +}; + +function createBaseUserTransaction(): UserTransaction { + return { request: undefined, events: [] }; +} + +export const UserTransaction = { + encode(message: UserTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.request !== undefined) { + UserTransactionRequest.encode(message.request, writer.uint32(10).fork()).ldelim(); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UserTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUserTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.request = UserTransactionRequest.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransaction.encode(p).finish()]; + } + } else { + yield* [UserTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransaction.decode(p)]; + } + } else { + yield* [UserTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): UserTransaction { + return { + request: isSet(object.request) ? UserTransactionRequest.fromJSON(object.request) : undefined, + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: UserTransaction): unknown { + const obj: any = {}; + if (message.request !== undefined) { + obj.request = UserTransactionRequest.toJSON(message.request); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): UserTransaction { + return UserTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): UserTransaction { + const message = createBaseUserTransaction(); + message.request = (object.request !== undefined && object.request !== null) + ? UserTransactionRequest.fromPartial(object.request) + : undefined; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEvent(): Event { + return { key: undefined, sequenceNumber: BigInt("0"), type: undefined, typeStr: "", data: "" }; +} + +export const Event = { + encode(message: Event, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined) { + EventKey.encode(message.key, writer.uint32(10).fork()).ldelim(); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.sequenceNumber) !== message.sequenceNumber) { + throw new Error("value provided for field message.sequenceNumber of type uint64 too large"); + } + writer.uint32(16).uint64(message.sequenceNumber.toString()); + } + if (message.type !== undefined) { + MoveType.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(42).string(message.typeStr); + } + if (message.data !== undefined && message.data !== "") { + writer.uint32(34).string(message.data); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Event { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEvent(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = EventKey.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.sequenceNumber = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveType.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.typeStr = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Event.encode(p).finish()]; + } + } else { + yield* [Event.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Event.decode(p)]; + } + } else { + yield* [Event.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Event { + return { + key: isSet(object.key) ? EventKey.fromJSON(object.key) : undefined, + sequenceNumber: isSet(object.sequenceNumber) ? BigInt(object.sequenceNumber) : BigInt("0"), + type: isSet(object.type) ? MoveType.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + data: isSet(object.data) ? globalThis.String(object.data) : "", + }; + }, + + toJSON(message: Event): unknown { + const obj: any = {}; + if (message.key !== undefined) { + obj.key = EventKey.toJSON(message.key); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + obj.sequenceNumber = message.sequenceNumber.toString(); + } + if (message.type !== undefined) { + obj.type = MoveType.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + if (message.data !== undefined && message.data !== "") { + obj.data = message.data; + } + return obj; + }, + + create(base?: DeepPartial): Event { + return Event.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Event { + const message = createBaseEvent(); + message.key = (object.key !== undefined && object.key !== null) ? EventKey.fromPartial(object.key) : undefined; + message.sequenceNumber = object.sequenceNumber ?? BigInt("0"); + message.type = (object.type !== undefined && object.type !== null) ? MoveType.fromPartial(object.type) : undefined; + message.typeStr = object.typeStr ?? ""; + message.data = object.data ?? ""; + return message; + }, +}; + +function createBaseTransactionInfo(): TransactionInfo { + return { + hash: new Uint8Array(0), + stateChangeHash: new Uint8Array(0), + eventRootHash: new Uint8Array(0), + stateCheckpointHash: undefined, + gasUsed: BigInt("0"), + success: false, + vmStatus: "", + accumulatorRootHash: new Uint8Array(0), + changes: [], + }; +} + +export const TransactionInfo = { + encode(message: TransactionInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hash !== undefined && message.hash.length !== 0) { + writer.uint32(10).bytes(message.hash); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash.length !== 0) { + writer.uint32(18).bytes(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash.length !== 0) { + writer.uint32(26).bytes(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined) { + writer.uint32(34).bytes(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) { + throw new Error("value provided for field message.gasUsed of type uint64 too large"); + } + writer.uint32(40).uint64(message.gasUsed.toString()); + } + if (message.success === true) { + writer.uint32(48).bool(message.success); + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + writer.uint32(58).string(message.vmStatus); + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash.length !== 0) { + writer.uint32(66).bytes(message.accumulatorRootHash); + } + if (message.changes !== undefined && message.changes.length !== 0) { + for (const v of message.changes) { + WriteSetChange.encode(v!, writer.uint32(74).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionInfo { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.hash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateChangeHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.eventRootHash = reader.bytes(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.stateCheckpointHash = reader.bytes(); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.gasUsed = longToBigint(reader.uint64() as Long); + continue; + case 6: + if (tag !== 48) { + break; + } + + message.success = reader.bool(); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.vmStatus = reader.string(); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.accumulatorRootHash = reader.bytes(); + continue; + case 9: + if (tag !== 74) { + break; + } + + message.changes!.push(WriteSetChange.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionInfo.encode(p).finish()]; + } + } else { + yield* [TransactionInfo.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionInfo.decode(p)]; + } + } else { + yield* [TransactionInfo.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionInfo { + return { + hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(0), + stateChangeHash: isSet(object.stateChangeHash) ? bytesFromBase64(object.stateChangeHash) : new Uint8Array(0), + eventRootHash: isSet(object.eventRootHash) ? bytesFromBase64(object.eventRootHash) : new Uint8Array(0), + stateCheckpointHash: isSet(object.stateCheckpointHash) ? bytesFromBase64(object.stateCheckpointHash) : undefined, + gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt("0"), + success: isSet(object.success) ? globalThis.Boolean(object.success) : false, + vmStatus: isSet(object.vmStatus) ? globalThis.String(object.vmStatus) : "", + accumulatorRootHash: isSet(object.accumulatorRootHash) + ? bytesFromBase64(object.accumulatorRootHash) + : new Uint8Array(0), + changes: globalThis.Array.isArray(object?.changes) + ? object.changes.map((e: any) => WriteSetChange.fromJSON(e)) + : [], + }; + }, + + toJSON(message: TransactionInfo): unknown { + const obj: any = {}; + if (message.hash !== undefined && message.hash.length !== 0) { + obj.hash = base64FromBytes(message.hash); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash.length !== 0) { + obj.stateChangeHash = base64FromBytes(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash.length !== 0) { + obj.eventRootHash = base64FromBytes(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined) { + obj.stateCheckpointHash = base64FromBytes(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + obj.gasUsed = message.gasUsed.toString(); + } + if (message.success === true) { + obj.success = message.success; + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + obj.vmStatus = message.vmStatus; + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash.length !== 0) { + obj.accumulatorRootHash = base64FromBytes(message.accumulatorRootHash); + } + if (message.changes?.length) { + obj.changes = message.changes.map((e) => WriteSetChange.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): TransactionInfo { + return TransactionInfo.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionInfo { + const message = createBaseTransactionInfo(); + message.hash = object.hash ?? new Uint8Array(0); + message.stateChangeHash = object.stateChangeHash ?? new Uint8Array(0); + message.eventRootHash = object.eventRootHash ?? new Uint8Array(0); + message.stateCheckpointHash = object.stateCheckpointHash ?? undefined; + message.gasUsed = object.gasUsed ?? BigInt("0"); + message.success = object.success ?? false; + message.vmStatus = object.vmStatus ?? ""; + message.accumulatorRootHash = object.accumulatorRootHash ?? new Uint8Array(0); + message.changes = object.changes?.map((e) => WriteSetChange.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEventKey(): EventKey { + return { creationNumber: BigInt("0"), accountAddress: "" }; +} + +export const EventKey = { + encode(message: EventKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.creationNumber !== undefined && message.creationNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.creationNumber) !== message.creationNumber) { + throw new Error("value provided for field message.creationNumber of type uint64 too large"); + } + writer.uint32(8).uint64(message.creationNumber.toString()); + } + if (message.accountAddress !== undefined && message.accountAddress !== "") { + writer.uint32(18).string(message.accountAddress); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EventKey { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEventKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.creationNumber = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.accountAddress = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EventKey.encode(p).finish()]; + } + } else { + yield* [EventKey.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EventKey.decode(p)]; + } + } else { + yield* [EventKey.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EventKey { + return { + creationNumber: isSet(object.creationNumber) ? BigInt(object.creationNumber) : BigInt("0"), + accountAddress: isSet(object.accountAddress) ? globalThis.String(object.accountAddress) : "", + }; + }, + + toJSON(message: EventKey): unknown { + const obj: any = {}; + if (message.creationNumber !== undefined && message.creationNumber !== BigInt("0")) { + obj.creationNumber = message.creationNumber.toString(); + } + if (message.accountAddress !== undefined && message.accountAddress !== "") { + obj.accountAddress = message.accountAddress; + } + return obj; + }, + + create(base?: DeepPartial): EventKey { + return EventKey.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EventKey { + const message = createBaseEventKey(); + message.creationNumber = object.creationNumber ?? BigInt("0"); + message.accountAddress = object.accountAddress ?? ""; + return message; + }, +}; + +function createBaseUserTransactionRequest(): UserTransactionRequest { + return { + sender: "", + sequenceNumber: BigInt("0"), + maxGasAmount: BigInt("0"), + gasUnitPrice: BigInt("0"), + expirationTimestampSecs: undefined, + payload: undefined, + signature: undefined, + }; +} + +export const UserTransactionRequest = { + encode(message: UserTransactionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined && message.sender !== "") { + writer.uint32(10).string(message.sender); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.sequenceNumber) !== message.sequenceNumber) { + throw new Error("value provided for field message.sequenceNumber of type uint64 too large"); + } + writer.uint32(16).uint64(message.sequenceNumber.toString()); + } + if (message.maxGasAmount !== undefined && message.maxGasAmount !== BigInt("0")) { + if (BigInt.asUintN(64, message.maxGasAmount) !== message.maxGasAmount) { + throw new Error("value provided for field message.maxGasAmount of type uint64 too large"); + } + writer.uint32(24).uint64(message.maxGasAmount.toString()); + } + if (message.gasUnitPrice !== undefined && message.gasUnitPrice !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUnitPrice) !== message.gasUnitPrice) { + throw new Error("value provided for field message.gasUnitPrice of type uint64 too large"); + } + writer.uint32(32).uint64(message.gasUnitPrice.toString()); + } + if (message.expirationTimestampSecs !== undefined) { + Timestamp.encode(message.expirationTimestampSecs, writer.uint32(42).fork()).ldelim(); + } + if (message.payload !== undefined) { + TransactionPayload.encode(message.payload, writer.uint32(50).fork()).ldelim(); + } + if (message.signature !== undefined) { + Signature.encode(message.signature, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UserTransactionRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUserTransactionRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.sequenceNumber = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.maxGasAmount = longToBigint(reader.uint64() as Long); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.gasUnitPrice = longToBigint(reader.uint64() as Long); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.expirationTimestampSecs = Timestamp.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.payload = TransactionPayload.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.signature = Signature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransactionRequest.encode(p).finish()]; + } + } else { + yield* [UserTransactionRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransactionRequest.decode(p)]; + } + } else { + yield* [UserTransactionRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): UserTransactionRequest { + return { + sender: isSet(object.sender) ? globalThis.String(object.sender) : "", + sequenceNumber: isSet(object.sequenceNumber) ? BigInt(object.sequenceNumber) : BigInt("0"), + maxGasAmount: isSet(object.maxGasAmount) ? BigInt(object.maxGasAmount) : BigInt("0"), + gasUnitPrice: isSet(object.gasUnitPrice) ? BigInt(object.gasUnitPrice) : BigInt("0"), + expirationTimestampSecs: isSet(object.expirationTimestampSecs) + ? Timestamp.fromJSON(object.expirationTimestampSecs) + : undefined, + payload: isSet(object.payload) ? TransactionPayload.fromJSON(object.payload) : undefined, + signature: isSet(object.signature) ? Signature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: UserTransactionRequest): unknown { + const obj: any = {}; + if (message.sender !== undefined && message.sender !== "") { + obj.sender = message.sender; + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + obj.sequenceNumber = message.sequenceNumber.toString(); + } + if (message.maxGasAmount !== undefined && message.maxGasAmount !== BigInt("0")) { + obj.maxGasAmount = message.maxGasAmount.toString(); + } + if (message.gasUnitPrice !== undefined && message.gasUnitPrice !== BigInt("0")) { + obj.gasUnitPrice = message.gasUnitPrice.toString(); + } + if (message.expirationTimestampSecs !== undefined) { + obj.expirationTimestampSecs = Timestamp.toJSON(message.expirationTimestampSecs); + } + if (message.payload !== undefined) { + obj.payload = TransactionPayload.toJSON(message.payload); + } + if (message.signature !== undefined) { + obj.signature = Signature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): UserTransactionRequest { + return UserTransactionRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): UserTransactionRequest { + const message = createBaseUserTransactionRequest(); + message.sender = object.sender ?? ""; + message.sequenceNumber = object.sequenceNumber ?? BigInt("0"); + message.maxGasAmount = object.maxGasAmount ?? BigInt("0"); + message.gasUnitPrice = object.gasUnitPrice ?? BigInt("0"); + message.expirationTimestampSecs = + (object.expirationTimestampSecs !== undefined && object.expirationTimestampSecs !== null) + ? Timestamp.fromPartial(object.expirationTimestampSecs) + : undefined; + message.payload = (object.payload !== undefined && object.payload !== null) + ? TransactionPayload.fromPartial(object.payload) + : undefined; + message.signature = (object.signature !== undefined && object.signature !== null) + ? Signature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseWriteSet(): WriteSet { + return { writeSetType: 0, scriptWriteSet: undefined, directWriteSet: undefined }; +} + +export const WriteSet = { + encode(message: WriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSetType !== undefined && message.writeSetType !== 0) { + writer.uint32(8).int32(message.writeSetType); + } + if (message.scriptWriteSet !== undefined) { + ScriptWriteSet.encode(message.scriptWriteSet, writer.uint32(18).fork()).ldelim(); + } + if (message.directWriteSet !== undefined) { + DirectWriteSet.encode(message.directWriteSet, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.writeSetType = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.scriptWriteSet = ScriptWriteSet.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.directWriteSet = DirectWriteSet.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSet.encode(p).finish()]; + } + } else { + yield* [WriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSet.decode(p)]; + } + } else { + yield* [WriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSet { + return { + writeSetType: isSet(object.writeSetType) ? writeSet_WriteSetTypeFromJSON(object.writeSetType) : 0, + scriptWriteSet: isSet(object.scriptWriteSet) ? ScriptWriteSet.fromJSON(object.scriptWriteSet) : undefined, + directWriteSet: isSet(object.directWriteSet) ? DirectWriteSet.fromJSON(object.directWriteSet) : undefined, + }; + }, + + toJSON(message: WriteSet): unknown { + const obj: any = {}; + if (message.writeSetType !== undefined && message.writeSetType !== 0) { + obj.writeSetType = writeSet_WriteSetTypeToJSON(message.writeSetType); + } + if (message.scriptWriteSet !== undefined) { + obj.scriptWriteSet = ScriptWriteSet.toJSON(message.scriptWriteSet); + } + if (message.directWriteSet !== undefined) { + obj.directWriteSet = DirectWriteSet.toJSON(message.directWriteSet); + } + return obj; + }, + + create(base?: DeepPartial): WriteSet { + return WriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSet { + const message = createBaseWriteSet(); + message.writeSetType = object.writeSetType ?? 0; + message.scriptWriteSet = (object.scriptWriteSet !== undefined && object.scriptWriteSet !== null) + ? ScriptWriteSet.fromPartial(object.scriptWriteSet) + : undefined; + message.directWriteSet = (object.directWriteSet !== undefined && object.directWriteSet !== null) + ? DirectWriteSet.fromPartial(object.directWriteSet) + : undefined; + return message; + }, +}; + +function createBaseScriptWriteSet(): ScriptWriteSet { + return { executeAs: "", script: undefined }; +} + +export const ScriptWriteSet = { + encode(message: ScriptWriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.executeAs !== undefined && message.executeAs !== "") { + writer.uint32(10).string(message.executeAs); + } + if (message.script !== undefined) { + ScriptPayload.encode(message.script, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScriptWriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScriptWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.executeAs = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.script = ScriptPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptWriteSet.encode(p).finish()]; + } + } else { + yield* [ScriptWriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptWriteSet.decode(p)]; + } + } else { + yield* [ScriptWriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ScriptWriteSet { + return { + executeAs: isSet(object.executeAs) ? globalThis.String(object.executeAs) : "", + script: isSet(object.script) ? ScriptPayload.fromJSON(object.script) : undefined, + }; + }, + + toJSON(message: ScriptWriteSet): unknown { + const obj: any = {}; + if (message.executeAs !== undefined && message.executeAs !== "") { + obj.executeAs = message.executeAs; + } + if (message.script !== undefined) { + obj.script = ScriptPayload.toJSON(message.script); + } + return obj; + }, + + create(base?: DeepPartial): ScriptWriteSet { + return ScriptWriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ScriptWriteSet { + const message = createBaseScriptWriteSet(); + message.executeAs = object.executeAs ?? ""; + message.script = (object.script !== undefined && object.script !== null) + ? ScriptPayload.fromPartial(object.script) + : undefined; + return message; + }, +}; + +function createBaseDirectWriteSet(): DirectWriteSet { + return { writeSetChange: [], events: [] }; +} + +export const DirectWriteSet = { + encode(message: DirectWriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSetChange !== undefined && message.writeSetChange.length !== 0) { + for (const v of message.writeSetChange) { + WriteSetChange.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DirectWriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDirectWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.writeSetChange!.push(WriteSetChange.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DirectWriteSet.encode(p).finish()]; + } + } else { + yield* [DirectWriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DirectWriteSet.decode(p)]; + } + } else { + yield* [DirectWriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DirectWriteSet { + return { + writeSetChange: globalThis.Array.isArray(object?.writeSetChange) + ? object.writeSetChange.map((e: any) => WriteSetChange.fromJSON(e)) + : [], + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: DirectWriteSet): unknown { + const obj: any = {}; + if (message.writeSetChange?.length) { + obj.writeSetChange = message.writeSetChange.map((e) => WriteSetChange.toJSON(e)); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): DirectWriteSet { + return DirectWriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DirectWriteSet { + const message = createBaseDirectWriteSet(); + message.writeSetChange = object.writeSetChange?.map((e) => WriteSetChange.fromPartial(e)) || []; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseWriteSetChange(): WriteSetChange { + return { + type: 0, + deleteModule: undefined, + deleteResource: undefined, + deleteTableItem: undefined, + writeModule: undefined, + writeResource: undefined, + writeTableItem: undefined, + }; +} + +export const WriteSetChange = { + encode(message: WriteSetChange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.deleteModule !== undefined) { + DeleteModule.encode(message.deleteModule, writer.uint32(18).fork()).ldelim(); + } + if (message.deleteResource !== undefined) { + DeleteResource.encode(message.deleteResource, writer.uint32(26).fork()).ldelim(); + } + if (message.deleteTableItem !== undefined) { + DeleteTableItem.encode(message.deleteTableItem, writer.uint32(34).fork()).ldelim(); + } + if (message.writeModule !== undefined) { + WriteModule.encode(message.writeModule, writer.uint32(42).fork()).ldelim(); + } + if (message.writeResource !== undefined) { + WriteResource.encode(message.writeResource, writer.uint32(50).fork()).ldelim(); + } + if (message.writeTableItem !== undefined) { + WriteTableItem.encode(message.writeTableItem, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSetChange { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSetChange(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.deleteModule = DeleteModule.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.deleteResource = DeleteResource.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.deleteTableItem = DeleteTableItem.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.writeModule = WriteModule.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.writeResource = WriteResource.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.writeTableItem = WriteTableItem.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetChange.encode(p).finish()]; + } + } else { + yield* [WriteSetChange.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetChange.decode(p)]; + } + } else { + yield* [WriteSetChange.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSetChange { + return { + type: isSet(object.type) ? writeSetChange_TypeFromJSON(object.type) : 0, + deleteModule: isSet(object.deleteModule) ? DeleteModule.fromJSON(object.deleteModule) : undefined, + deleteResource: isSet(object.deleteResource) ? DeleteResource.fromJSON(object.deleteResource) : undefined, + deleteTableItem: isSet(object.deleteTableItem) ? DeleteTableItem.fromJSON(object.deleteTableItem) : undefined, + writeModule: isSet(object.writeModule) ? WriteModule.fromJSON(object.writeModule) : undefined, + writeResource: isSet(object.writeResource) ? WriteResource.fromJSON(object.writeResource) : undefined, + writeTableItem: isSet(object.writeTableItem) ? WriteTableItem.fromJSON(object.writeTableItem) : undefined, + }; + }, + + toJSON(message: WriteSetChange): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = writeSetChange_TypeToJSON(message.type); + } + if (message.deleteModule !== undefined) { + obj.deleteModule = DeleteModule.toJSON(message.deleteModule); + } + if (message.deleteResource !== undefined) { + obj.deleteResource = DeleteResource.toJSON(message.deleteResource); + } + if (message.deleteTableItem !== undefined) { + obj.deleteTableItem = DeleteTableItem.toJSON(message.deleteTableItem); + } + if (message.writeModule !== undefined) { + obj.writeModule = WriteModule.toJSON(message.writeModule); + } + if (message.writeResource !== undefined) { + obj.writeResource = WriteResource.toJSON(message.writeResource); + } + if (message.writeTableItem !== undefined) { + obj.writeTableItem = WriteTableItem.toJSON(message.writeTableItem); + } + return obj; + }, + + create(base?: DeepPartial): WriteSetChange { + return WriteSetChange.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSetChange { + const message = createBaseWriteSetChange(); + message.type = object.type ?? 0; + message.deleteModule = (object.deleteModule !== undefined && object.deleteModule !== null) + ? DeleteModule.fromPartial(object.deleteModule) + : undefined; + message.deleteResource = (object.deleteResource !== undefined && object.deleteResource !== null) + ? DeleteResource.fromPartial(object.deleteResource) + : undefined; + message.deleteTableItem = (object.deleteTableItem !== undefined && object.deleteTableItem !== null) + ? DeleteTableItem.fromPartial(object.deleteTableItem) + : undefined; + message.writeModule = (object.writeModule !== undefined && object.writeModule !== null) + ? WriteModule.fromPartial(object.writeModule) + : undefined; + message.writeResource = (object.writeResource !== undefined && object.writeResource !== null) + ? WriteResource.fromPartial(object.writeResource) + : undefined; + message.writeTableItem = (object.writeTableItem !== undefined && object.writeTableItem !== null) + ? WriteTableItem.fromPartial(object.writeTableItem) + : undefined; + return message; + }, +}; + +function createBaseDeleteModule(): DeleteModule { + return { address: "", stateKeyHash: new Uint8Array(0), module: undefined }; +} + +export const DeleteModule = { + encode(message: DeleteModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.module !== undefined) { + MoveModuleId.encode(message.module, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.module = MoveModuleId.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteModule.encode(p).finish()]; + } + } else { + yield* [DeleteModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteModule.decode(p)]; + } + } else { + yield* [DeleteModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + module: isSet(object.module) ? MoveModuleId.fromJSON(object.module) : undefined, + }; + }, + + toJSON(message: DeleteModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.module !== undefined) { + obj.module = MoveModuleId.toJSON(message.module); + } + return obj; + }, + + create(base?: DeepPartial): DeleteModule { + return DeleteModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteModule { + const message = createBaseDeleteModule(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.module = (object.module !== undefined && object.module !== null) + ? MoveModuleId.fromPartial(object.module) + : undefined; + return message; + }, +}; + +function createBaseDeleteResource(): DeleteResource { + return { address: "", stateKeyHash: new Uint8Array(0), type: undefined, typeStr: "" }; +} + +export const DeleteResource = { + encode(message: DeleteResource, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.type !== undefined) { + MoveStructTag.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(34).string(message.typeStr); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResource { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteResource(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.typeStr = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteResource.encode(p).finish()]; + } + } else { + yield* [DeleteResource.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteResource.decode(p)]; + } + } else { + yield* [DeleteResource.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteResource { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + type: isSet(object.type) ? MoveStructTag.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + }; + }, + + toJSON(message: DeleteResource): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.type !== undefined) { + obj.type = MoveStructTag.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + return obj; + }, + + create(base?: DeepPartial): DeleteResource { + return DeleteResource.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteResource { + const message = createBaseDeleteResource(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.type = (object.type !== undefined && object.type !== null) + ? MoveStructTag.fromPartial(object.type) + : undefined; + message.typeStr = object.typeStr ?? ""; + return message; + }, +}; + +function createBaseDeleteTableItem(): DeleteTableItem { + return { stateKeyHash: new Uint8Array(0), handle: "", key: "", data: undefined }; +} + +export const DeleteTableItem = { + encode(message: DeleteTableItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(10).bytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + writer.uint32(18).string(message.handle); + } + if (message.key !== undefined && message.key !== "") { + writer.uint32(26).string(message.key); + } + if (message.data !== undefined) { + DeleteTableData.encode(message.data, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTableItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteTableItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.handle = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.key = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = DeleteTableData.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableItem.encode(p).finish()]; + } + } else { + yield* [DeleteTableItem.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableItem.decode(p)]; + } + } else { + yield* [DeleteTableItem.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteTableItem { + return { + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + handle: isSet(object.handle) ? globalThis.String(object.handle) : "", + key: isSet(object.key) ? globalThis.String(object.key) : "", + data: isSet(object.data) ? DeleteTableData.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: DeleteTableItem): unknown { + const obj: any = {}; + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + obj.handle = message.handle; + } + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.data !== undefined) { + obj.data = DeleteTableData.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): DeleteTableItem { + return DeleteTableItem.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteTableItem { + const message = createBaseDeleteTableItem(); + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.handle = object.handle ?? ""; + message.key = object.key ?? ""; + message.data = (object.data !== undefined && object.data !== null) + ? DeleteTableData.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseDeleteTableData(): DeleteTableData { + return { key: "", keyType: "" }; +} + +export const DeleteTableData = { + encode(message: DeleteTableData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined && message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.keyType !== undefined && message.keyType !== "") { + writer.uint32(18).string(message.keyType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTableData { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteTableData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.keyType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableData.encode(p).finish()]; + } + } else { + yield* [DeleteTableData.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableData.decode(p)]; + } + } else { + yield* [DeleteTableData.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteTableData { + return { + key: isSet(object.key) ? globalThis.String(object.key) : "", + keyType: isSet(object.keyType) ? globalThis.String(object.keyType) : "", + }; + }, + + toJSON(message: DeleteTableData): unknown { + const obj: any = {}; + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.keyType !== undefined && message.keyType !== "") { + obj.keyType = message.keyType; + } + return obj; + }, + + create(base?: DeepPartial): DeleteTableData { + return DeleteTableData.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteTableData { + const message = createBaseDeleteTableData(); + message.key = object.key ?? ""; + message.keyType = object.keyType ?? ""; + return message; + }, +}; + +function createBaseWriteModule(): WriteModule { + return { address: "", stateKeyHash: new Uint8Array(0), data: undefined }; +} + +export const WriteModule = { + encode(message: WriteModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.data !== undefined) { + MoveModuleBytecode.encode(message.data, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.data = MoveModuleBytecode.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteModule.encode(p).finish()]; + } + } else { + yield* [WriteModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteModule.decode(p)]; + } + } else { + yield* [WriteModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + data: isSet(object.data) ? MoveModuleBytecode.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: WriteModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.data !== undefined) { + obj.data = MoveModuleBytecode.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): WriteModule { + return WriteModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteModule { + const message = createBaseWriteModule(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.data = (object.data !== undefined && object.data !== null) + ? MoveModuleBytecode.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseWriteResource(): WriteResource { + return { address: "", stateKeyHash: new Uint8Array(0), type: undefined, typeStr: "", data: "" }; +} + +export const WriteResource = { + encode(message: WriteResource, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.type !== undefined) { + MoveStructTag.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(34).string(message.typeStr); + } + if (message.data !== undefined && message.data !== "") { + writer.uint32(42).string(message.data); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteResource { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteResource(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.typeStr = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.data = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteResource.encode(p).finish()]; + } + } else { + yield* [WriteResource.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteResource.decode(p)]; + } + } else { + yield* [WriteResource.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteResource { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + type: isSet(object.type) ? MoveStructTag.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + data: isSet(object.data) ? globalThis.String(object.data) : "", + }; + }, + + toJSON(message: WriteResource): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.type !== undefined) { + obj.type = MoveStructTag.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + if (message.data !== undefined && message.data !== "") { + obj.data = message.data; + } + return obj; + }, + + create(base?: DeepPartial): WriteResource { + return WriteResource.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteResource { + const message = createBaseWriteResource(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.type = (object.type !== undefined && object.type !== null) + ? MoveStructTag.fromPartial(object.type) + : undefined; + message.typeStr = object.typeStr ?? ""; + message.data = object.data ?? ""; + return message; + }, +}; + +function createBaseWriteTableData(): WriteTableData { + return { key: "", keyType: "", value: "", valueType: "" }; +} + +export const WriteTableData = { + encode(message: WriteTableData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined && message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.keyType !== undefined && message.keyType !== "") { + writer.uint32(18).string(message.keyType); + } + if (message.value !== undefined && message.value !== "") { + writer.uint32(26).string(message.value); + } + if (message.valueType !== undefined && message.valueType !== "") { + writer.uint32(34).string(message.valueType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteTableData { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteTableData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.keyType = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.value = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.valueType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableData.encode(p).finish()]; + } + } else { + yield* [WriteTableData.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableData.decode(p)]; + } + } else { + yield* [WriteTableData.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteTableData { + return { + key: isSet(object.key) ? globalThis.String(object.key) : "", + keyType: isSet(object.keyType) ? globalThis.String(object.keyType) : "", + value: isSet(object.value) ? globalThis.String(object.value) : "", + valueType: isSet(object.valueType) ? globalThis.String(object.valueType) : "", + }; + }, + + toJSON(message: WriteTableData): unknown { + const obj: any = {}; + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.keyType !== undefined && message.keyType !== "") { + obj.keyType = message.keyType; + } + if (message.value !== undefined && message.value !== "") { + obj.value = message.value; + } + if (message.valueType !== undefined && message.valueType !== "") { + obj.valueType = message.valueType; + } + return obj; + }, + + create(base?: DeepPartial): WriteTableData { + return WriteTableData.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteTableData { + const message = createBaseWriteTableData(); + message.key = object.key ?? ""; + message.keyType = object.keyType ?? ""; + message.value = object.value ?? ""; + message.valueType = object.valueType ?? ""; + return message; + }, +}; + +function createBaseWriteTableItem(): WriteTableItem { + return { stateKeyHash: new Uint8Array(0), handle: "", key: "", data: undefined }; +} + +export const WriteTableItem = { + encode(message: WriteTableItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(10).bytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + writer.uint32(18).string(message.handle); + } + if (message.key !== undefined && message.key !== "") { + writer.uint32(26).string(message.key); + } + if (message.data !== undefined) { + WriteTableData.encode(message.data, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteTableItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteTableItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.handle = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.key = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = WriteTableData.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableItem.encode(p).finish()]; + } + } else { + yield* [WriteTableItem.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableItem.decode(p)]; + } + } else { + yield* [WriteTableItem.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteTableItem { + return { + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + handle: isSet(object.handle) ? globalThis.String(object.handle) : "", + key: isSet(object.key) ? globalThis.String(object.key) : "", + data: isSet(object.data) ? WriteTableData.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: WriteTableItem): unknown { + const obj: any = {}; + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + obj.handle = message.handle; + } + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.data !== undefined) { + obj.data = WriteTableData.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): WriteTableItem { + return WriteTableItem.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteTableItem { + const message = createBaseWriteTableItem(); + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.handle = object.handle ?? ""; + message.key = object.key ?? ""; + message.data = (object.data !== undefined && object.data !== null) + ? WriteTableData.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseTransactionPayload(): TransactionPayload { + return { + type: 0, + entryFunctionPayload: undefined, + scriptPayload: undefined, + moduleBundlePayload: undefined, + writeSetPayload: undefined, + multisigPayload: undefined, + }; +} + +export const TransactionPayload = { + encode(message: TransactionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.entryFunctionPayload !== undefined) { + EntryFunctionPayload.encode(message.entryFunctionPayload, writer.uint32(18).fork()).ldelim(); + } + if (message.scriptPayload !== undefined) { + ScriptPayload.encode(message.scriptPayload, writer.uint32(26).fork()).ldelim(); + } + if (message.moduleBundlePayload !== undefined) { + ModuleBundlePayload.encode(message.moduleBundlePayload, writer.uint32(34).fork()).ldelim(); + } + if (message.writeSetPayload !== undefined) { + WriteSetPayload.encode(message.writeSetPayload, writer.uint32(42).fork()).ldelim(); + } + if (message.multisigPayload !== undefined) { + MultisigPayload.encode(message.multisigPayload, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.entryFunctionPayload = EntryFunctionPayload.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.scriptPayload = ScriptPayload.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.moduleBundlePayload = ModuleBundlePayload.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.writeSetPayload = WriteSetPayload.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.multisigPayload = MultisigPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionPayload.encode(p).finish()]; + } + } else { + yield* [TransactionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionPayload.decode(p)]; + } + } else { + yield* [TransactionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionPayload { + return { + type: isSet(object.type) ? transactionPayload_TypeFromJSON(object.type) : 0, + entryFunctionPayload: isSet(object.entryFunctionPayload) + ? EntryFunctionPayload.fromJSON(object.entryFunctionPayload) + : undefined, + scriptPayload: isSet(object.scriptPayload) ? ScriptPayload.fromJSON(object.scriptPayload) : undefined, + moduleBundlePayload: isSet(object.moduleBundlePayload) + ? ModuleBundlePayload.fromJSON(object.moduleBundlePayload) + : undefined, + writeSetPayload: isSet(object.writeSetPayload) ? WriteSetPayload.fromJSON(object.writeSetPayload) : undefined, + multisigPayload: isSet(object.multisigPayload) ? MultisigPayload.fromJSON(object.multisigPayload) : undefined, + }; + }, + + toJSON(message: TransactionPayload): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = transactionPayload_TypeToJSON(message.type); + } + if (message.entryFunctionPayload !== undefined) { + obj.entryFunctionPayload = EntryFunctionPayload.toJSON(message.entryFunctionPayload); + } + if (message.scriptPayload !== undefined) { + obj.scriptPayload = ScriptPayload.toJSON(message.scriptPayload); + } + if (message.moduleBundlePayload !== undefined) { + obj.moduleBundlePayload = ModuleBundlePayload.toJSON(message.moduleBundlePayload); + } + if (message.writeSetPayload !== undefined) { + obj.writeSetPayload = WriteSetPayload.toJSON(message.writeSetPayload); + } + if (message.multisigPayload !== undefined) { + obj.multisigPayload = MultisigPayload.toJSON(message.multisigPayload); + } + return obj; + }, + + create(base?: DeepPartial): TransactionPayload { + return TransactionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionPayload { + const message = createBaseTransactionPayload(); + message.type = object.type ?? 0; + message.entryFunctionPayload = (object.entryFunctionPayload !== undefined && object.entryFunctionPayload !== null) + ? EntryFunctionPayload.fromPartial(object.entryFunctionPayload) + : undefined; + message.scriptPayload = (object.scriptPayload !== undefined && object.scriptPayload !== null) + ? ScriptPayload.fromPartial(object.scriptPayload) + : undefined; + message.moduleBundlePayload = (object.moduleBundlePayload !== undefined && object.moduleBundlePayload !== null) + ? ModuleBundlePayload.fromPartial(object.moduleBundlePayload) + : undefined; + message.writeSetPayload = (object.writeSetPayload !== undefined && object.writeSetPayload !== null) + ? WriteSetPayload.fromPartial(object.writeSetPayload) + : undefined; + message.multisigPayload = (object.multisigPayload !== undefined && object.multisigPayload !== null) + ? MultisigPayload.fromPartial(object.multisigPayload) + : undefined; + return message; + }, +}; + +function createBaseEntryFunctionPayload(): EntryFunctionPayload { + return { function: undefined, typeArguments: [], arguments: [], entryFunctionIdStr: "" }; +} + +export const EntryFunctionPayload = { + encode(message: EntryFunctionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.function !== undefined) { + EntryFunctionId.encode(message.function, writer.uint32(10).fork()).ldelim(); + } + if (message.typeArguments !== undefined && message.typeArguments.length !== 0) { + for (const v of message.typeArguments) { + MoveType.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.arguments !== undefined && message.arguments.length !== 0) { + for (const v of message.arguments) { + writer.uint32(26).string(v!); + } + } + if (message.entryFunctionIdStr !== undefined && message.entryFunctionIdStr !== "") { + writer.uint32(34).string(message.entryFunctionIdStr); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EntryFunctionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEntryFunctionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.function = EntryFunctionId.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.typeArguments!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.arguments!.push(reader.string()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.entryFunctionIdStr = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionPayload.encode(p).finish()]; + } + } else { + yield* [EntryFunctionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionPayload.decode(p)]; + } + } else { + yield* [EntryFunctionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EntryFunctionPayload { + return { + function: isSet(object.function) ? EntryFunctionId.fromJSON(object.function) : undefined, + typeArguments: globalThis.Array.isArray(object?.typeArguments) + ? object.typeArguments.map((e: any) => MoveType.fromJSON(e)) + : [], + arguments: globalThis.Array.isArray(object?.arguments) + ? object.arguments.map((e: any) => globalThis.String(e)) + : [], + entryFunctionIdStr: isSet(object.entryFunctionIdStr) ? globalThis.String(object.entryFunctionIdStr) : "", + }; + }, + + toJSON(message: EntryFunctionPayload): unknown { + const obj: any = {}; + if (message.function !== undefined) { + obj.function = EntryFunctionId.toJSON(message.function); + } + if (message.typeArguments?.length) { + obj.typeArguments = message.typeArguments.map((e) => MoveType.toJSON(e)); + } + if (message.arguments?.length) { + obj.arguments = message.arguments; + } + if (message.entryFunctionIdStr !== undefined && message.entryFunctionIdStr !== "") { + obj.entryFunctionIdStr = message.entryFunctionIdStr; + } + return obj; + }, + + create(base?: DeepPartial): EntryFunctionPayload { + return EntryFunctionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EntryFunctionPayload { + const message = createBaseEntryFunctionPayload(); + message.function = (object.function !== undefined && object.function !== null) + ? EntryFunctionId.fromPartial(object.function) + : undefined; + message.typeArguments = object.typeArguments?.map((e) => MoveType.fromPartial(e)) || []; + message.arguments = object.arguments?.map((e) => e) || []; + message.entryFunctionIdStr = object.entryFunctionIdStr ?? ""; + return message; + }, +}; + +function createBaseMoveScriptBytecode(): MoveScriptBytecode { + return { bytecode: new Uint8Array(0), abi: undefined }; +} + +export const MoveScriptBytecode = { + encode(message: MoveScriptBytecode, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + writer.uint32(10).bytes(message.bytecode); + } + if (message.abi !== undefined) { + MoveFunction.encode(message.abi, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveScriptBytecode { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveScriptBytecode(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.bytecode = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.abi = MoveFunction.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveScriptBytecode.encode(p).finish()]; + } + } else { + yield* [MoveScriptBytecode.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveScriptBytecode.decode(p)]; + } + } else { + yield* [MoveScriptBytecode.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveScriptBytecode { + return { + bytecode: isSet(object.bytecode) ? bytesFromBase64(object.bytecode) : new Uint8Array(0), + abi: isSet(object.abi) ? MoveFunction.fromJSON(object.abi) : undefined, + }; + }, + + toJSON(message: MoveScriptBytecode): unknown { + const obj: any = {}; + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + obj.bytecode = base64FromBytes(message.bytecode); + } + if (message.abi !== undefined) { + obj.abi = MoveFunction.toJSON(message.abi); + } + return obj; + }, + + create(base?: DeepPartial): MoveScriptBytecode { + return MoveScriptBytecode.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveScriptBytecode { + const message = createBaseMoveScriptBytecode(); + message.bytecode = object.bytecode ?? new Uint8Array(0); + message.abi = (object.abi !== undefined && object.abi !== null) ? MoveFunction.fromPartial(object.abi) : undefined; + return message; + }, +}; + +function createBaseScriptPayload(): ScriptPayload { + return { code: undefined, typeArguments: [], arguments: [] }; +} + +export const ScriptPayload = { + encode(message: ScriptPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.code !== undefined) { + MoveScriptBytecode.encode(message.code, writer.uint32(10).fork()).ldelim(); + } + if (message.typeArguments !== undefined && message.typeArguments.length !== 0) { + for (const v of message.typeArguments) { + MoveType.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.arguments !== undefined && message.arguments.length !== 0) { + for (const v of message.arguments) { + writer.uint32(26).string(v!); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScriptPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScriptPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.code = MoveScriptBytecode.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.typeArguments!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.arguments!.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptPayload.encode(p).finish()]; + } + } else { + yield* [ScriptPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptPayload.decode(p)]; + } + } else { + yield* [ScriptPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ScriptPayload { + return { + code: isSet(object.code) ? MoveScriptBytecode.fromJSON(object.code) : undefined, + typeArguments: globalThis.Array.isArray(object?.typeArguments) + ? object.typeArguments.map((e: any) => MoveType.fromJSON(e)) + : [], + arguments: globalThis.Array.isArray(object?.arguments) + ? object.arguments.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ScriptPayload): unknown { + const obj: any = {}; + if (message.code !== undefined) { + obj.code = MoveScriptBytecode.toJSON(message.code); + } + if (message.typeArguments?.length) { + obj.typeArguments = message.typeArguments.map((e) => MoveType.toJSON(e)); + } + if (message.arguments?.length) { + obj.arguments = message.arguments; + } + return obj; + }, + + create(base?: DeepPartial): ScriptPayload { + return ScriptPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ScriptPayload { + const message = createBaseScriptPayload(); + message.code = (object.code !== undefined && object.code !== null) + ? MoveScriptBytecode.fromPartial(object.code) + : undefined; + message.typeArguments = object.typeArguments?.map((e) => MoveType.fromPartial(e)) || []; + message.arguments = object.arguments?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMultisigPayload(): MultisigPayload { + return { multisigAddress: "", transactionPayload: undefined }; +} + +export const MultisigPayload = { + encode(message: MultisigPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.multisigAddress !== undefined && message.multisigAddress !== "") { + writer.uint32(10).string(message.multisigAddress); + } + if (message.transactionPayload !== undefined) { + MultisigTransactionPayload.encode(message.transactionPayload, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultisigPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultisigPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.multisigAddress = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.transactionPayload = MultisigTransactionPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigPayload.encode(p).finish()]; + } + } else { + yield* [MultisigPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigPayload.decode(p)]; + } + } else { + yield* [MultisigPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultisigPayload { + return { + multisigAddress: isSet(object.multisigAddress) ? globalThis.String(object.multisigAddress) : "", + transactionPayload: isSet(object.transactionPayload) + ? MultisigTransactionPayload.fromJSON(object.transactionPayload) + : undefined, + }; + }, + + toJSON(message: MultisigPayload): unknown { + const obj: any = {}; + if (message.multisigAddress !== undefined && message.multisigAddress !== "") { + obj.multisigAddress = message.multisigAddress; + } + if (message.transactionPayload !== undefined) { + obj.transactionPayload = MultisigTransactionPayload.toJSON(message.transactionPayload); + } + return obj; + }, + + create(base?: DeepPartial): MultisigPayload { + return MultisigPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultisigPayload { + const message = createBaseMultisigPayload(); + message.multisigAddress = object.multisigAddress ?? ""; + message.transactionPayload = (object.transactionPayload !== undefined && object.transactionPayload !== null) + ? MultisigTransactionPayload.fromPartial(object.transactionPayload) + : undefined; + return message; + }, +}; + +function createBaseMultisigTransactionPayload(): MultisigTransactionPayload { + return { type: 0, entryFunctionPayload: undefined }; +} + +export const MultisigTransactionPayload = { + encode(message: MultisigTransactionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.entryFunctionPayload !== undefined) { + EntryFunctionPayload.encode(message.entryFunctionPayload, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultisigTransactionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultisigTransactionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.entryFunctionPayload = EntryFunctionPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigTransactionPayload.encode(p).finish()]; + } + } else { + yield* [MultisigTransactionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigTransactionPayload.decode(p)]; + } + } else { + yield* [MultisigTransactionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultisigTransactionPayload { + return { + type: isSet(object.type) ? multisigTransactionPayload_TypeFromJSON(object.type) : 0, + entryFunctionPayload: isSet(object.entryFunctionPayload) + ? EntryFunctionPayload.fromJSON(object.entryFunctionPayload) + : undefined, + }; + }, + + toJSON(message: MultisigTransactionPayload): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = multisigTransactionPayload_TypeToJSON(message.type); + } + if (message.entryFunctionPayload !== undefined) { + obj.entryFunctionPayload = EntryFunctionPayload.toJSON(message.entryFunctionPayload); + } + return obj; + }, + + create(base?: DeepPartial): MultisigTransactionPayload { + return MultisigTransactionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultisigTransactionPayload { + const message = createBaseMultisigTransactionPayload(); + message.type = object.type ?? 0; + message.entryFunctionPayload = (object.entryFunctionPayload !== undefined && object.entryFunctionPayload !== null) + ? EntryFunctionPayload.fromPartial(object.entryFunctionPayload) + : undefined; + return message; + }, +}; + +function createBaseModuleBundlePayload(): ModuleBundlePayload { + return { modules: [] }; +} + +export const ModuleBundlePayload = { + encode(message: ModuleBundlePayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.modules !== undefined && message.modules.length !== 0) { + for (const v of message.modules) { + MoveModuleBytecode.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ModuleBundlePayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseModuleBundlePayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.modules!.push(MoveModuleBytecode.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ModuleBundlePayload.encode(p).finish()]; + } + } else { + yield* [ModuleBundlePayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ModuleBundlePayload.decode(p)]; + } + } else { + yield* [ModuleBundlePayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ModuleBundlePayload { + return { + modules: globalThis.Array.isArray(object?.modules) + ? object.modules.map((e: any) => MoveModuleBytecode.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ModuleBundlePayload): unknown { + const obj: any = {}; + if (message.modules?.length) { + obj.modules = message.modules.map((e) => MoveModuleBytecode.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): ModuleBundlePayload { + return ModuleBundlePayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ModuleBundlePayload { + const message = createBaseModuleBundlePayload(); + message.modules = object.modules?.map((e) => MoveModuleBytecode.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveModuleBytecode(): MoveModuleBytecode { + return { bytecode: new Uint8Array(0), abi: undefined }; +} + +export const MoveModuleBytecode = { + encode(message: MoveModuleBytecode, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + writer.uint32(10).bytes(message.bytecode); + } + if (message.abi !== undefined) { + MoveModule.encode(message.abi, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModuleBytecode { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModuleBytecode(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.bytecode = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.abi = MoveModule.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleBytecode.encode(p).finish()]; + } + } else { + yield* [MoveModuleBytecode.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleBytecode.decode(p)]; + } + } else { + yield* [MoveModuleBytecode.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModuleBytecode { + return { + bytecode: isSet(object.bytecode) ? bytesFromBase64(object.bytecode) : new Uint8Array(0), + abi: isSet(object.abi) ? MoveModule.fromJSON(object.abi) : undefined, + }; + }, + + toJSON(message: MoveModuleBytecode): unknown { + const obj: any = {}; + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + obj.bytecode = base64FromBytes(message.bytecode); + } + if (message.abi !== undefined) { + obj.abi = MoveModule.toJSON(message.abi); + } + return obj; + }, + + create(base?: DeepPartial): MoveModuleBytecode { + return MoveModuleBytecode.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModuleBytecode { + const message = createBaseMoveModuleBytecode(); + message.bytecode = object.bytecode ?? new Uint8Array(0); + message.abi = (object.abi !== undefined && object.abi !== null) ? MoveModule.fromPartial(object.abi) : undefined; + return message; + }, +}; + +function createBaseMoveModule(): MoveModule { + return { address: "", name: "", friends: [], exposedFunctions: [], structs: [] }; +} + +export const MoveModule = { + encode(message: MoveModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.friends !== undefined && message.friends.length !== 0) { + for (const v of message.friends) { + MoveModuleId.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.exposedFunctions !== undefined && message.exposedFunctions.length !== 0) { + for (const v of message.exposedFunctions) { + MoveFunction.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.structs !== undefined && message.structs.length !== 0) { + for (const v of message.structs) { + MoveStruct.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.friends!.push(MoveModuleId.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.exposedFunctions!.push(MoveFunction.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.structs!.push(MoveStruct.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModule.encode(p).finish()]; + } + } else { + yield* [MoveModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModule.decode(p)]; + } + } else { + yield* [MoveModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + friends: globalThis.Array.isArray(object?.friends) + ? object.friends.map((e: any) => MoveModuleId.fromJSON(e)) + : [], + exposedFunctions: globalThis.Array.isArray(object?.exposedFunctions) + ? object.exposedFunctions.map((e: any) => MoveFunction.fromJSON(e)) + : [], + structs: globalThis.Array.isArray(object?.structs) ? object.structs.map((e: any) => MoveStruct.fromJSON(e)) : [], + }; + }, + + toJSON(message: MoveModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.friends?.length) { + obj.friends = message.friends.map((e) => MoveModuleId.toJSON(e)); + } + if (message.exposedFunctions?.length) { + obj.exposedFunctions = message.exposedFunctions.map((e) => MoveFunction.toJSON(e)); + } + if (message.structs?.length) { + obj.structs = message.structs.map((e) => MoveStruct.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveModule { + return MoveModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModule { + const message = createBaseMoveModule(); + message.address = object.address ?? ""; + message.name = object.name ?? ""; + message.friends = object.friends?.map((e) => MoveModuleId.fromPartial(e)) || []; + message.exposedFunctions = object.exposedFunctions?.map((e) => MoveFunction.fromPartial(e)) || []; + message.structs = object.structs?.map((e) => MoveStruct.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveFunction(): MoveFunction { + return { name: "", visibility: 0, isEntry: false, genericTypeParams: [], params: [], return: [] }; +} + +export const MoveFunction = { + encode(message: MoveFunction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.visibility !== undefined && message.visibility !== 0) { + writer.uint32(16).int32(message.visibility); + } + if (message.isEntry === true) { + writer.uint32(24).bool(message.isEntry); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveFunctionGenericTypeParam.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.params !== undefined && message.params.length !== 0) { + for (const v of message.params) { + MoveType.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + if (message.return !== undefined && message.return.length !== 0) { + for (const v of message.return) { + MoveType.encode(v!, writer.uint32(50).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveFunction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveFunction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.visibility = reader.int32() as any; + continue; + case 3: + if (tag !== 24) { + break; + } + + message.isEntry = reader.bool(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveFunctionGenericTypeParam.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.params!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.return!.push(MoveType.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunction.encode(p).finish()]; + } + } else { + yield* [MoveFunction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunction.decode(p)]; + } + } else { + yield* [MoveFunction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveFunction { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + visibility: isSet(object.visibility) ? moveFunction_VisibilityFromJSON(object.visibility) : 0, + isEntry: isSet(object.isEntry) ? globalThis.Boolean(object.isEntry) : false, + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveFunctionGenericTypeParam.fromJSON(e)) + : [], + params: globalThis.Array.isArray(object?.params) ? object.params.map((e: any) => MoveType.fromJSON(e)) : [], + return: globalThis.Array.isArray(object?.return) ? object.return.map((e: any) => MoveType.fromJSON(e)) : [], + }; + }, + + toJSON(message: MoveFunction): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.visibility !== undefined && message.visibility !== 0) { + obj.visibility = moveFunction_VisibilityToJSON(message.visibility); + } + if (message.isEntry === true) { + obj.isEntry = message.isEntry; + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveFunctionGenericTypeParam.toJSON(e)); + } + if (message.params?.length) { + obj.params = message.params.map((e) => MoveType.toJSON(e)); + } + if (message.return?.length) { + obj.return = message.return.map((e) => MoveType.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveFunction { + return MoveFunction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveFunction { + const message = createBaseMoveFunction(); + message.name = object.name ?? ""; + message.visibility = object.visibility ?? 0; + message.isEntry = object.isEntry ?? false; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveFunctionGenericTypeParam.fromPartial(e)) || []; + message.params = object.params?.map((e) => MoveType.fromPartial(e)) || []; + message.return = object.return?.map((e) => MoveType.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveStruct(): MoveStruct { + return { name: "", isNative: false, abilities: [], genericTypeParams: [], fields: [] }; +} + +export const MoveStruct = { + encode(message: MoveStruct, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.isNative === true) { + writer.uint32(16).bool(message.isNative); + } + if (message.abilities !== undefined && message.abilities.length !== 0) { + writer.uint32(26).fork(); + for (const v of message.abilities) { + writer.int32(v); + } + writer.ldelim(); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveStructGenericTypeParam.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.fields !== undefined && message.fields.length !== 0) { + for (const v of message.fields) { + MoveStructField.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStruct { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStruct(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.isNative = reader.bool(); + continue; + case 3: + if (tag === 24) { + message.abilities!.push(reader.int32() as any); + + continue; + } + + if (tag === 26) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.abilities!.push(reader.int32() as any); + } + + continue; + } + + break; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveStructGenericTypeParam.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.fields!.push(MoveStructField.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStruct.encode(p).finish()]; + } + } else { + yield* [MoveStruct.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStruct.decode(p)]; + } + } else { + yield* [MoveStruct.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStruct { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + isNative: isSet(object.isNative) ? globalThis.Boolean(object.isNative) : false, + abilities: globalThis.Array.isArray(object?.abilities) + ? object.abilities.map((e: any) => moveAbilityFromJSON(e)) + : [], + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveStructGenericTypeParam.fromJSON(e)) + : [], + fields: globalThis.Array.isArray(object?.fields) + ? object.fields.map((e: any) => MoveStructField.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveStruct): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.isNative === true) { + obj.isNative = message.isNative; + } + if (message.abilities?.length) { + obj.abilities = message.abilities.map((e) => moveAbilityToJSON(e)); + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveStructGenericTypeParam.toJSON(e)); + } + if (message.fields?.length) { + obj.fields = message.fields.map((e) => MoveStructField.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveStruct { + return MoveStruct.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStruct { + const message = createBaseMoveStruct(); + message.name = object.name ?? ""; + message.isNative = object.isNative ?? false; + message.abilities = object.abilities?.map((e) => e) || []; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveStructGenericTypeParam.fromPartial(e)) || []; + message.fields = object.fields?.map((e) => MoveStructField.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveStructGenericTypeParam(): MoveStructGenericTypeParam { + return { constraints: [], isPhantom: false }; +} + +export const MoveStructGenericTypeParam = { + encode(message: MoveStructGenericTypeParam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.constraints !== undefined && message.constraints.length !== 0) { + writer.uint32(10).fork(); + for (const v of message.constraints) { + writer.int32(v); + } + writer.ldelim(); + } + if (message.isPhantom === true) { + writer.uint32(16).bool(message.isPhantom); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructGenericTypeParam { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructGenericTypeParam(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag === 8) { + message.constraints!.push(reader.int32() as any); + + continue; + } + + if (tag === 10) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.constraints!.push(reader.int32() as any); + } + + continue; + } + + break; + case 2: + if (tag !== 16) { + break; + } + + message.isPhantom = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructGenericTypeParam.encode(p).finish()]; + } + } else { + yield* [MoveStructGenericTypeParam.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructGenericTypeParam.decode(p)]; + } + } else { + yield* [MoveStructGenericTypeParam.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructGenericTypeParam { + return { + constraints: globalThis.Array.isArray(object?.constraints) + ? object.constraints.map((e: any) => moveAbilityFromJSON(e)) + : [], + isPhantom: isSet(object.isPhantom) ? globalThis.Boolean(object.isPhantom) : false, + }; + }, + + toJSON(message: MoveStructGenericTypeParam): unknown { + const obj: any = {}; + if (message.constraints?.length) { + obj.constraints = message.constraints.map((e) => moveAbilityToJSON(e)); + } + if (message.isPhantom === true) { + obj.isPhantom = message.isPhantom; + } + return obj; + }, + + create(base?: DeepPartial): MoveStructGenericTypeParam { + return MoveStructGenericTypeParam.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructGenericTypeParam { + const message = createBaseMoveStructGenericTypeParam(); + message.constraints = object.constraints?.map((e) => e) || []; + message.isPhantom = object.isPhantom ?? false; + return message; + }, +}; + +function createBaseMoveStructField(): MoveStructField { + return { name: "", type: undefined }; +} + +export const MoveStructField = { + encode(message: MoveStructField, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.type !== undefined) { + MoveType.encode(message.type, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructField { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructField(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.type = MoveType.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructField.encode(p).finish()]; + } + } else { + yield* [MoveStructField.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructField.decode(p)]; + } + } else { + yield* [MoveStructField.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructField { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + type: isSet(object.type) ? MoveType.fromJSON(object.type) : undefined, + }; + }, + + toJSON(message: MoveStructField): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.type !== undefined) { + obj.type = MoveType.toJSON(message.type); + } + return obj; + }, + + create(base?: DeepPartial): MoveStructField { + return MoveStructField.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructField { + const message = createBaseMoveStructField(); + message.name = object.name ?? ""; + message.type = (object.type !== undefined && object.type !== null) ? MoveType.fromPartial(object.type) : undefined; + return message; + }, +}; + +function createBaseMoveFunctionGenericTypeParam(): MoveFunctionGenericTypeParam { + return { constraints: [] }; +} + +export const MoveFunctionGenericTypeParam = { + encode(message: MoveFunctionGenericTypeParam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.constraints !== undefined && message.constraints.length !== 0) { + writer.uint32(10).fork(); + for (const v of message.constraints) { + writer.int32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveFunctionGenericTypeParam { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveFunctionGenericTypeParam(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag === 8) { + message.constraints!.push(reader.int32() as any); + + continue; + } + + if (tag === 10) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.constraints!.push(reader.int32() as any); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunctionGenericTypeParam.encode(p).finish()]; + } + } else { + yield* [MoveFunctionGenericTypeParam.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunctionGenericTypeParam.decode(p)]; + } + } else { + yield* [MoveFunctionGenericTypeParam.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveFunctionGenericTypeParam { + return { + constraints: globalThis.Array.isArray(object?.constraints) + ? object.constraints.map((e: any) => moveAbilityFromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveFunctionGenericTypeParam): unknown { + const obj: any = {}; + if (message.constraints?.length) { + obj.constraints = message.constraints.map((e) => moveAbilityToJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveFunctionGenericTypeParam { + return MoveFunctionGenericTypeParam.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveFunctionGenericTypeParam { + const message = createBaseMoveFunctionGenericTypeParam(); + message.constraints = object.constraints?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMoveType(): MoveType { + return { + type: 0, + vector: undefined, + struct: undefined, + genericTypeParamIndex: undefined, + reference: undefined, + unparsable: undefined, + }; +} + +export const MoveType = { + encode(message: MoveType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.vector !== undefined) { + MoveType.encode(message.vector, writer.uint32(26).fork()).ldelim(); + } + if (message.struct !== undefined) { + MoveStructTag.encode(message.struct, writer.uint32(34).fork()).ldelim(); + } + if (message.genericTypeParamIndex !== undefined) { + writer.uint32(40).uint32(message.genericTypeParamIndex); + } + if (message.reference !== undefined) { + MoveType_ReferenceType.encode(message.reference, writer.uint32(50).fork()).ldelim(); + } + if (message.unparsable !== undefined) { + writer.uint32(58).string(message.unparsable); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveType { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 3: + if (tag !== 26) { + break; + } + + message.vector = MoveType.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.struct = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.genericTypeParamIndex = reader.uint32(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.reference = MoveType_ReferenceType.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.unparsable = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType.encode(p).finish()]; + } + } else { + yield* [MoveType.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType.decode(p)]; + } + } else { + yield* [MoveType.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveType { + return { + type: isSet(object.type) ? moveTypesFromJSON(object.type) : 0, + vector: isSet(object.vector) ? MoveType.fromJSON(object.vector) : undefined, + struct: isSet(object.struct) ? MoveStructTag.fromJSON(object.struct) : undefined, + genericTypeParamIndex: isSet(object.genericTypeParamIndex) + ? globalThis.Number(object.genericTypeParamIndex) + : undefined, + reference: isSet(object.reference) ? MoveType_ReferenceType.fromJSON(object.reference) : undefined, + unparsable: isSet(object.unparsable) ? globalThis.String(object.unparsable) : undefined, + }; + }, + + toJSON(message: MoveType): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = moveTypesToJSON(message.type); + } + if (message.vector !== undefined) { + obj.vector = MoveType.toJSON(message.vector); + } + if (message.struct !== undefined) { + obj.struct = MoveStructTag.toJSON(message.struct); + } + if (message.genericTypeParamIndex !== undefined) { + obj.genericTypeParamIndex = Math.round(message.genericTypeParamIndex); + } + if (message.reference !== undefined) { + obj.reference = MoveType_ReferenceType.toJSON(message.reference); + } + if (message.unparsable !== undefined) { + obj.unparsable = message.unparsable; + } + return obj; + }, + + create(base?: DeepPartial): MoveType { + return MoveType.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveType { + const message = createBaseMoveType(); + message.type = object.type ?? 0; + message.vector = (object.vector !== undefined && object.vector !== null) + ? MoveType.fromPartial(object.vector) + : undefined; + message.struct = (object.struct !== undefined && object.struct !== null) + ? MoveStructTag.fromPartial(object.struct) + : undefined; + message.genericTypeParamIndex = object.genericTypeParamIndex ?? undefined; + message.reference = (object.reference !== undefined && object.reference !== null) + ? MoveType_ReferenceType.fromPartial(object.reference) + : undefined; + message.unparsable = object.unparsable ?? undefined; + return message; + }, +}; + +function createBaseMoveType_ReferenceType(): MoveType_ReferenceType { + return { mutable: false, to: undefined }; +} + +export const MoveType_ReferenceType = { + encode(message: MoveType_ReferenceType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.mutable === true) { + writer.uint32(8).bool(message.mutable); + } + if (message.to !== undefined) { + MoveType.encode(message.to, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveType_ReferenceType { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveType_ReferenceType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.mutable = reader.bool(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.to = MoveType.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType_ReferenceType.encode(p).finish()]; + } + } else { + yield* [MoveType_ReferenceType.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType_ReferenceType.decode(p)]; + } + } else { + yield* [MoveType_ReferenceType.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveType_ReferenceType { + return { + mutable: isSet(object.mutable) ? globalThis.Boolean(object.mutable) : false, + to: isSet(object.to) ? MoveType.fromJSON(object.to) : undefined, + }; + }, + + toJSON(message: MoveType_ReferenceType): unknown { + const obj: any = {}; + if (message.mutable === true) { + obj.mutable = message.mutable; + } + if (message.to !== undefined) { + obj.to = MoveType.toJSON(message.to); + } + return obj; + }, + + create(base?: DeepPartial): MoveType_ReferenceType { + return MoveType_ReferenceType.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveType_ReferenceType { + const message = createBaseMoveType_ReferenceType(); + message.mutable = object.mutable ?? false; + message.to = (object.to !== undefined && object.to !== null) ? MoveType.fromPartial(object.to) : undefined; + return message; + }, +}; + +function createBaseWriteSetPayload(): WriteSetPayload { + return { writeSet: undefined }; +} + +export const WriteSetPayload = { + encode(message: WriteSetPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSet !== undefined) { + WriteSet.encode(message.writeSet, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSetPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSetPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.writeSet = WriteSet.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetPayload.encode(p).finish()]; + } + } else { + yield* [WriteSetPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetPayload.decode(p)]; + } + } else { + yield* [WriteSetPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSetPayload { + return { writeSet: isSet(object.writeSet) ? WriteSet.fromJSON(object.writeSet) : undefined }; + }, + + toJSON(message: WriteSetPayload): unknown { + const obj: any = {}; + if (message.writeSet !== undefined) { + obj.writeSet = WriteSet.toJSON(message.writeSet); + } + return obj; + }, + + create(base?: DeepPartial): WriteSetPayload { + return WriteSetPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSetPayload { + const message = createBaseWriteSetPayload(); + message.writeSet = (object.writeSet !== undefined && object.writeSet !== null) + ? WriteSet.fromPartial(object.writeSet) + : undefined; + return message; + }, +}; + +function createBaseEntryFunctionId(): EntryFunctionId { + return { module: undefined, name: "" }; +} + +export const EntryFunctionId = { + encode(message: EntryFunctionId, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.module !== undefined) { + MoveModuleId.encode(message.module, writer.uint32(10).fork()).ldelim(); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EntryFunctionId { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEntryFunctionId(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.module = MoveModuleId.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionId.encode(p).finish()]; + } + } else { + yield* [EntryFunctionId.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionId.decode(p)]; + } + } else { + yield* [EntryFunctionId.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EntryFunctionId { + return { + module: isSet(object.module) ? MoveModuleId.fromJSON(object.module) : undefined, + name: isSet(object.name) ? globalThis.String(object.name) : "", + }; + }, + + toJSON(message: EntryFunctionId): unknown { + const obj: any = {}; + if (message.module !== undefined) { + obj.module = MoveModuleId.toJSON(message.module); + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create(base?: DeepPartial): EntryFunctionId { + return EntryFunctionId.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EntryFunctionId { + const message = createBaseEntryFunctionId(); + message.module = (object.module !== undefined && object.module !== null) + ? MoveModuleId.fromPartial(object.module) + : undefined; + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseMoveModuleId(): MoveModuleId { + return { address: "", name: "" }; +} + +export const MoveModuleId = { + encode(message: MoveModuleId, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModuleId { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModuleId(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleId.encode(p).finish()]; + } + } else { + yield* [MoveModuleId.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleId.decode(p)]; + } + } else { + yield* [MoveModuleId.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModuleId { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + }; + }, + + toJSON(message: MoveModuleId): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create(base?: DeepPartial): MoveModuleId { + return MoveModuleId.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModuleId { + const message = createBaseMoveModuleId(); + message.address = object.address ?? ""; + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseMoveStructTag(): MoveStructTag { + return { address: "", module: "", name: "", genericTypeParams: [] }; +} + +export const MoveStructTag = { + encode(message: MoveStructTag, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.module !== undefined && message.module !== "") { + writer.uint32(18).string(message.module); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(26).string(message.name); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveType.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructTag { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructTag(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.module = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.name = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveType.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructTag.encode(p).finish()]; + } + } else { + yield* [MoveStructTag.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructTag.decode(p)]; + } + } else { + yield* [MoveStructTag.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructTag { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + module: isSet(object.module) ? globalThis.String(object.module) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveType.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveStructTag): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.module !== undefined && message.module !== "") { + obj.module = message.module; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveType.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveStructTag { + return MoveStructTag.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructTag { + const message = createBaseMoveStructTag(); + message.address = object.address ?? ""; + message.module = object.module ?? ""; + message.name = object.name ?? ""; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveType.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseSignature(): Signature { + return { + type: 0, + ed25519: undefined, + multiEd25519: undefined, + multiAgent: undefined, + feePayer: undefined, + singleSender: undefined, + }; +} + +export const Signature = { + encode(message: Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.ed25519 !== undefined) { + Ed25519Signature.encode(message.ed25519, writer.uint32(18).fork()).ldelim(); + } + if (message.multiEd25519 !== undefined) { + MultiEd25519Signature.encode(message.multiEd25519, writer.uint32(26).fork()).ldelim(); + } + if (message.multiAgent !== undefined) { + MultiAgentSignature.encode(message.multiAgent, writer.uint32(34).fork()).ldelim(); + } + if (message.feePayer !== undefined) { + FeePayerSignature.encode(message.feePayer, writer.uint32(42).fork()).ldelim(); + } + if (message.singleSender !== undefined) { + SingleSender.encode(message.singleSender, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.ed25519 = Ed25519Signature.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.multiEd25519 = MultiEd25519Signature.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.multiAgent = MultiAgentSignature.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.feePayer = FeePayerSignature.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.singleSender = SingleSender.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Signature.encode(p).finish()]; + } + } else { + yield* [Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Signature.decode(p)]; + } + } else { + yield* [Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Signature { + return { + type: isSet(object.type) ? signature_TypeFromJSON(object.type) : 0, + ed25519: isSet(object.ed25519) ? Ed25519Signature.fromJSON(object.ed25519) : undefined, + multiEd25519: isSet(object.multiEd25519) ? MultiEd25519Signature.fromJSON(object.multiEd25519) : undefined, + multiAgent: isSet(object.multiAgent) ? MultiAgentSignature.fromJSON(object.multiAgent) : undefined, + feePayer: isSet(object.feePayer) ? FeePayerSignature.fromJSON(object.feePayer) : undefined, + singleSender: isSet(object.singleSender) ? SingleSender.fromJSON(object.singleSender) : undefined, + }; + }, + + toJSON(message: Signature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = signature_TypeToJSON(message.type); + } + if (message.ed25519 !== undefined) { + obj.ed25519 = Ed25519Signature.toJSON(message.ed25519); + } + if (message.multiEd25519 !== undefined) { + obj.multiEd25519 = MultiEd25519Signature.toJSON(message.multiEd25519); + } + if (message.multiAgent !== undefined) { + obj.multiAgent = MultiAgentSignature.toJSON(message.multiAgent); + } + if (message.feePayer !== undefined) { + obj.feePayer = FeePayerSignature.toJSON(message.feePayer); + } + if (message.singleSender !== undefined) { + obj.singleSender = SingleSender.toJSON(message.singleSender); + } + return obj; + }, + + create(base?: DeepPartial): Signature { + return Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Signature { + const message = createBaseSignature(); + message.type = object.type ?? 0; + message.ed25519 = (object.ed25519 !== undefined && object.ed25519 !== null) + ? Ed25519Signature.fromPartial(object.ed25519) + : undefined; + message.multiEd25519 = (object.multiEd25519 !== undefined && object.multiEd25519 !== null) + ? MultiEd25519Signature.fromPartial(object.multiEd25519) + : undefined; + message.multiAgent = (object.multiAgent !== undefined && object.multiAgent !== null) + ? MultiAgentSignature.fromPartial(object.multiAgent) + : undefined; + message.feePayer = (object.feePayer !== undefined && object.feePayer !== null) + ? FeePayerSignature.fromPartial(object.feePayer) + : undefined; + message.singleSender = (object.singleSender !== undefined && object.singleSender !== null) + ? SingleSender.fromPartial(object.singleSender) + : undefined; + return message; + }, +}; + +function createBaseEd25519Signature(): Ed25519Signature { + return { publicKey: new Uint8Array(0), signature: new Uint8Array(0) }; +} + +export const Ed25519Signature = { + encode(message: Ed25519Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + writer.uint32(10).bytes(message.publicKey); + } + if (message.signature !== undefined && message.signature.length !== 0) { + writer.uint32(18).bytes(message.signature); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Ed25519Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEd25519Signature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKey = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Ed25519Signature.encode(p).finish()]; + } + } else { + yield* [Ed25519Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Ed25519Signature.decode(p)]; + } + } else { + yield* [Ed25519Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Ed25519Signature { + return { + publicKey: isSet(object.publicKey) ? bytesFromBase64(object.publicKey) : new Uint8Array(0), + signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0), + }; + }, + + toJSON(message: Ed25519Signature): unknown { + const obj: any = {}; + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + obj.publicKey = base64FromBytes(message.publicKey); + } + if (message.signature !== undefined && message.signature.length !== 0) { + obj.signature = base64FromBytes(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): Ed25519Signature { + return Ed25519Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Ed25519Signature { + const message = createBaseEd25519Signature(); + message.publicKey = object.publicKey ?? new Uint8Array(0); + message.signature = object.signature ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseMultiEd25519Signature(): MultiEd25519Signature { + return { publicKeys: [], signatures: [], threshold: 0, publicKeyIndices: [] }; +} + +export const MultiEd25519Signature = { + encode(message: MultiEd25519Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKeys !== undefined && message.publicKeys.length !== 0) { + for (const v of message.publicKeys) { + writer.uint32(10).bytes(v!); + } + } + if (message.signatures !== undefined && message.signatures.length !== 0) { + for (const v of message.signatures) { + writer.uint32(18).bytes(v!); + } + } + if (message.threshold !== undefined && message.threshold !== 0) { + writer.uint32(24).uint32(message.threshold); + } + if (message.publicKeyIndices !== undefined && message.publicKeyIndices.length !== 0) { + writer.uint32(34).fork(); + for (const v of message.publicKeyIndices) { + writer.uint32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiEd25519Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiEd25519Signature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKeys!.push(reader.bytes()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signatures!.push(reader.bytes()); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.threshold = reader.uint32(); + continue; + case 4: + if (tag === 32) { + message.publicKeyIndices!.push(reader.uint32()); + + continue; + } + + if (tag === 34) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.publicKeyIndices!.push(reader.uint32()); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiEd25519Signature.encode(p).finish()]; + } + } else { + yield* [MultiEd25519Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiEd25519Signature.decode(p)]; + } + } else { + yield* [MultiEd25519Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiEd25519Signature { + return { + publicKeys: globalThis.Array.isArray(object?.publicKeys) + ? object.publicKeys.map((e: any) => bytesFromBase64(e)) + : [], + signatures: globalThis.Array.isArray(object?.signatures) + ? object.signatures.map((e: any) => bytesFromBase64(e)) + : [], + threshold: isSet(object.threshold) ? globalThis.Number(object.threshold) : 0, + publicKeyIndices: globalThis.Array.isArray(object?.publicKeyIndices) + ? object.publicKeyIndices.map((e: any) => globalThis.Number(e)) + : [], + }; + }, + + toJSON(message: MultiEd25519Signature): unknown { + const obj: any = {}; + if (message.publicKeys?.length) { + obj.publicKeys = message.publicKeys.map((e) => base64FromBytes(e)); + } + if (message.signatures?.length) { + obj.signatures = message.signatures.map((e) => base64FromBytes(e)); + } + if (message.threshold !== undefined && message.threshold !== 0) { + obj.threshold = Math.round(message.threshold); + } + if (message.publicKeyIndices?.length) { + obj.publicKeyIndices = message.publicKeyIndices.map((e) => Math.round(e)); + } + return obj; + }, + + create(base?: DeepPartial): MultiEd25519Signature { + return MultiEd25519Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiEd25519Signature { + const message = createBaseMultiEd25519Signature(); + message.publicKeys = object.publicKeys?.map((e) => e) || []; + message.signatures = object.signatures?.map((e) => e) || []; + message.threshold = object.threshold ?? 0; + message.publicKeyIndices = object.publicKeyIndices?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMultiAgentSignature(): MultiAgentSignature { + return { sender: undefined, secondarySignerAddresses: [], secondarySigners: [] }; +} + +export const MultiAgentSignature = { + encode(message: MultiAgentSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + if (message.secondarySignerAddresses !== undefined && message.secondarySignerAddresses.length !== 0) { + for (const v of message.secondarySignerAddresses) { + writer.uint32(18).string(v!); + } + } + if (message.secondarySigners !== undefined && message.secondarySigners.length !== 0) { + for (const v of message.secondarySigners) { + AccountSignature.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiAgentSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiAgentSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.secondarySignerAddresses!.push(reader.string()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.secondarySigners!.push(AccountSignature.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiAgentSignature.encode(p).finish()]; + } + } else { + yield* [MultiAgentSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiAgentSignature.decode(p)]; + } + } else { + yield* [MultiAgentSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiAgentSignature { + return { + sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined, + secondarySignerAddresses: globalThis.Array.isArray(object?.secondarySignerAddresses) + ? object.secondarySignerAddresses.map((e: any) => globalThis.String(e)) + : [], + secondarySigners: globalThis.Array.isArray(object?.secondarySigners) + ? object.secondarySigners.map((e: any) => AccountSignature.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MultiAgentSignature): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + if (message.secondarySignerAddresses?.length) { + obj.secondarySignerAddresses = message.secondarySignerAddresses; + } + if (message.secondarySigners?.length) { + obj.secondarySigners = message.secondarySigners.map((e) => AccountSignature.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MultiAgentSignature { + return MultiAgentSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiAgentSignature { + const message = createBaseMultiAgentSignature(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + message.secondarySignerAddresses = object.secondarySignerAddresses?.map((e) => e) || []; + message.secondarySigners = object.secondarySigners?.map((e) => AccountSignature.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseFeePayerSignature(): FeePayerSignature { + return { + sender: undefined, + secondarySignerAddresses: [], + secondarySigners: [], + feePayerAddress: "", + feePayerSigner: undefined, + }; +} + +export const FeePayerSignature = { + encode(message: FeePayerSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + if (message.secondarySignerAddresses !== undefined && message.secondarySignerAddresses.length !== 0) { + for (const v of message.secondarySignerAddresses) { + writer.uint32(18).string(v!); + } + } + if (message.secondarySigners !== undefined && message.secondarySigners.length !== 0) { + for (const v of message.secondarySigners) { + AccountSignature.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.feePayerAddress !== undefined && message.feePayerAddress !== "") { + writer.uint32(34).string(message.feePayerAddress); + } + if (message.feePayerSigner !== undefined) { + AccountSignature.encode(message.feePayerSigner, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): FeePayerSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseFeePayerSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.secondarySignerAddresses!.push(reader.string()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.secondarySigners!.push(AccountSignature.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.feePayerAddress = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.feePayerSigner = AccountSignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [FeePayerSignature.encode(p).finish()]; + } + } else { + yield* [FeePayerSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [FeePayerSignature.decode(p)]; + } + } else { + yield* [FeePayerSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): FeePayerSignature { + return { + sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined, + secondarySignerAddresses: globalThis.Array.isArray(object?.secondarySignerAddresses) + ? object.secondarySignerAddresses.map((e: any) => globalThis.String(e)) + : [], + secondarySigners: globalThis.Array.isArray(object?.secondarySigners) + ? object.secondarySigners.map((e: any) => AccountSignature.fromJSON(e)) + : [], + feePayerAddress: isSet(object.feePayerAddress) ? globalThis.String(object.feePayerAddress) : "", + feePayerSigner: isSet(object.feePayerSigner) ? AccountSignature.fromJSON(object.feePayerSigner) : undefined, + }; + }, + + toJSON(message: FeePayerSignature): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + if (message.secondarySignerAddresses?.length) { + obj.secondarySignerAddresses = message.secondarySignerAddresses; + } + if (message.secondarySigners?.length) { + obj.secondarySigners = message.secondarySigners.map((e) => AccountSignature.toJSON(e)); + } + if (message.feePayerAddress !== undefined && message.feePayerAddress !== "") { + obj.feePayerAddress = message.feePayerAddress; + } + if (message.feePayerSigner !== undefined) { + obj.feePayerSigner = AccountSignature.toJSON(message.feePayerSigner); + } + return obj; + }, + + create(base?: DeepPartial): FeePayerSignature { + return FeePayerSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): FeePayerSignature { + const message = createBaseFeePayerSignature(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + message.secondarySignerAddresses = object.secondarySignerAddresses?.map((e) => e) || []; + message.secondarySigners = object.secondarySigners?.map((e) => AccountSignature.fromPartial(e)) || []; + message.feePayerAddress = object.feePayerAddress ?? ""; + message.feePayerSigner = (object.feePayerSigner !== undefined && object.feePayerSigner !== null) + ? AccountSignature.fromPartial(object.feePayerSigner) + : undefined; + return message; + }, +}; + +function createBaseAnyPublicKey(): AnyPublicKey { + return { type: 0, publicKey: new Uint8Array(0) }; +} + +export const AnyPublicKey = { + encode(message: AnyPublicKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + writer.uint32(18).bytes(message.publicKey); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AnyPublicKey { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAnyPublicKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.publicKey = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnyPublicKey.encode(p).finish()]; + } + } else { + yield* [AnyPublicKey.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnyPublicKey.decode(p)]; + } + } else { + yield* [AnyPublicKey.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AnyPublicKey { + return { + type: isSet(object.type) ? anyPublicKey_TypeFromJSON(object.type) : 0, + publicKey: isSet(object.publicKey) ? bytesFromBase64(object.publicKey) : new Uint8Array(0), + }; + }, + + toJSON(message: AnyPublicKey): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = anyPublicKey_TypeToJSON(message.type); + } + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + obj.publicKey = base64FromBytes(message.publicKey); + } + return obj; + }, + + create(base?: DeepPartial): AnyPublicKey { + return AnyPublicKey.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AnyPublicKey { + const message = createBaseAnyPublicKey(); + message.type = object.type ?? 0; + message.publicKey = object.publicKey ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseAnySignature(): AnySignature { + return { type: 0, signature: new Uint8Array(0) }; +} + +export const AnySignature = { + encode(message: AnySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.signature !== undefined && message.signature.length !== 0) { + writer.uint32(18).bytes(message.signature); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AnySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAnySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnySignature.encode(p).finish()]; + } + } else { + yield* [AnySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnySignature.decode(p)]; + } + } else { + yield* [AnySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AnySignature { + return { + type: isSet(object.type) ? anySignature_TypeFromJSON(object.type) : 0, + signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0), + }; + }, + + toJSON(message: AnySignature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = anySignature_TypeToJSON(message.type); + } + if (message.signature !== undefined && message.signature.length !== 0) { + obj.signature = base64FromBytes(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): AnySignature { + return AnySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AnySignature { + const message = createBaseAnySignature(); + message.type = object.type ?? 0; + message.signature = object.signature ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseSingleKeySignature(): SingleKeySignature { + return { publicKey: undefined, signature: undefined }; +} + +export const SingleKeySignature = { + encode(message: SingleKeySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKey !== undefined) { + AnyPublicKey.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); + } + if (message.signature !== undefined) { + AnySignature.encode(message.signature, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SingleKeySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSingleKeySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKey = AnyPublicKey.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = AnySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleKeySignature.encode(p).finish()]; + } + } else { + yield* [SingleKeySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleKeySignature.decode(p)]; + } + } else { + yield* [SingleKeySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): SingleKeySignature { + return { + publicKey: isSet(object.publicKey) ? AnyPublicKey.fromJSON(object.publicKey) : undefined, + signature: isSet(object.signature) ? AnySignature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: SingleKeySignature): unknown { + const obj: any = {}; + if (message.publicKey !== undefined) { + obj.publicKey = AnyPublicKey.toJSON(message.publicKey); + } + if (message.signature !== undefined) { + obj.signature = AnySignature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): SingleKeySignature { + return SingleKeySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): SingleKeySignature { + const message = createBaseSingleKeySignature(); + message.publicKey = (object.publicKey !== undefined && object.publicKey !== null) + ? AnyPublicKey.fromPartial(object.publicKey) + : undefined; + message.signature = (object.signature !== undefined && object.signature !== null) + ? AnySignature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseIndexedSignature(): IndexedSignature { + return { index: 0, signature: undefined }; +} + +export const IndexedSignature = { + encode(message: IndexedSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.index !== undefined && message.index !== 0) { + writer.uint32(8).uint32(message.index); + } + if (message.signature !== undefined) { + AnySignature.encode(message.signature, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): IndexedSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIndexedSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.index = reader.uint32(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = AnySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [IndexedSignature.encode(p).finish()]; + } + } else { + yield* [IndexedSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [IndexedSignature.decode(p)]; + } + } else { + yield* [IndexedSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): IndexedSignature { + return { + index: isSet(object.index) ? globalThis.Number(object.index) : 0, + signature: isSet(object.signature) ? AnySignature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: IndexedSignature): unknown { + const obj: any = {}; + if (message.index !== undefined && message.index !== 0) { + obj.index = Math.round(message.index); + } + if (message.signature !== undefined) { + obj.signature = AnySignature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): IndexedSignature { + return IndexedSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): IndexedSignature { + const message = createBaseIndexedSignature(); + message.index = object.index ?? 0; + message.signature = (object.signature !== undefined && object.signature !== null) + ? AnySignature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseMultiKeySignature(): MultiKeySignature { + return { publicKeys: [], signatures: [], signaturesRequired: 0 }; +} + +export const MultiKeySignature = { + encode(message: MultiKeySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKeys !== undefined && message.publicKeys.length !== 0) { + for (const v of message.publicKeys) { + AnyPublicKey.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.signatures !== undefined && message.signatures.length !== 0) { + for (const v of message.signatures) { + IndexedSignature.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.signaturesRequired !== undefined && message.signaturesRequired !== 0) { + writer.uint32(24).uint32(message.signaturesRequired); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiKeySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiKeySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKeys!.push(AnyPublicKey.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signatures!.push(IndexedSignature.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.signaturesRequired = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiKeySignature.encode(p).finish()]; + } + } else { + yield* [MultiKeySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiKeySignature.decode(p)]; + } + } else { + yield* [MultiKeySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiKeySignature { + return { + publicKeys: globalThis.Array.isArray(object?.publicKeys) + ? object.publicKeys.map((e: any) => AnyPublicKey.fromJSON(e)) + : [], + signatures: globalThis.Array.isArray(object?.signatures) + ? object.signatures.map((e: any) => IndexedSignature.fromJSON(e)) + : [], + signaturesRequired: isSet(object.signaturesRequired) ? globalThis.Number(object.signaturesRequired) : 0, + }; + }, + + toJSON(message: MultiKeySignature): unknown { + const obj: any = {}; + if (message.publicKeys?.length) { + obj.publicKeys = message.publicKeys.map((e) => AnyPublicKey.toJSON(e)); + } + if (message.signatures?.length) { + obj.signatures = message.signatures.map((e) => IndexedSignature.toJSON(e)); + } + if (message.signaturesRequired !== undefined && message.signaturesRequired !== 0) { + obj.signaturesRequired = Math.round(message.signaturesRequired); + } + return obj; + }, + + create(base?: DeepPartial): MultiKeySignature { + return MultiKeySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiKeySignature { + const message = createBaseMultiKeySignature(); + message.publicKeys = object.publicKeys?.map((e) => AnyPublicKey.fromPartial(e)) || []; + message.signatures = object.signatures?.map((e) => IndexedSignature.fromPartial(e)) || []; + message.signaturesRequired = object.signaturesRequired ?? 0; + return message; + }, +}; + +function createBaseSingleSender(): SingleSender { + return { sender: undefined }; +} + +export const SingleSender = { + encode(message: SingleSender, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SingleSender { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSingleSender(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleSender.encode(p).finish()]; + } + } else { + yield* [SingleSender.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleSender.decode(p)]; + } + } else { + yield* [SingleSender.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): SingleSender { + return { sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined }; + }, + + toJSON(message: SingleSender): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + return obj; + }, + + create(base?: DeepPartial): SingleSender { + return SingleSender.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): SingleSender { + const message = createBaseSingleSender(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + return message; + }, +}; + +function createBaseAccountSignature(): AccountSignature { + return { + type: 0, + ed25519: undefined, + multiEd25519: undefined, + singleKeySignature: undefined, + multiKeySignature: undefined, + }; +} + +export const AccountSignature = { + encode(message: AccountSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.ed25519 !== undefined) { + Ed25519Signature.encode(message.ed25519, writer.uint32(18).fork()).ldelim(); + } + if (message.multiEd25519 !== undefined) { + MultiEd25519Signature.encode(message.multiEd25519, writer.uint32(26).fork()).ldelim(); + } + if (message.singleKeySignature !== undefined) { + SingleKeySignature.encode(message.singleKeySignature, writer.uint32(34).fork()).ldelim(); + } + if (message.multiKeySignature !== undefined) { + MultiKeySignature.encode(message.multiKeySignature, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AccountSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAccountSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.ed25519 = Ed25519Signature.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.multiEd25519 = MultiEd25519Signature.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.singleKeySignature = SingleKeySignature.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.multiKeySignature = MultiKeySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AccountSignature.encode(p).finish()]; + } + } else { + yield* [AccountSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AccountSignature.decode(p)]; + } + } else { + yield* [AccountSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AccountSignature { + return { + type: isSet(object.type) ? accountSignature_TypeFromJSON(object.type) : 0, + ed25519: isSet(object.ed25519) ? Ed25519Signature.fromJSON(object.ed25519) : undefined, + multiEd25519: isSet(object.multiEd25519) ? MultiEd25519Signature.fromJSON(object.multiEd25519) : undefined, + singleKeySignature: isSet(object.singleKeySignature) + ? SingleKeySignature.fromJSON(object.singleKeySignature) + : undefined, + multiKeySignature: isSet(object.multiKeySignature) + ? MultiKeySignature.fromJSON(object.multiKeySignature) + : undefined, + }; + }, + + toJSON(message: AccountSignature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = accountSignature_TypeToJSON(message.type); + } + if (message.ed25519 !== undefined) { + obj.ed25519 = Ed25519Signature.toJSON(message.ed25519); + } + if (message.multiEd25519 !== undefined) { + obj.multiEd25519 = MultiEd25519Signature.toJSON(message.multiEd25519); + } + if (message.singleKeySignature !== undefined) { + obj.singleKeySignature = SingleKeySignature.toJSON(message.singleKeySignature); + } + if (message.multiKeySignature !== undefined) { + obj.multiKeySignature = MultiKeySignature.toJSON(message.multiKeySignature); + } + return obj; + }, + + create(base?: DeepPartial): AccountSignature { + return AccountSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AccountSignature { + const message = createBaseAccountSignature(); + message.type = object.type ?? 0; + message.ed25519 = (object.ed25519 !== undefined && object.ed25519 !== null) + ? Ed25519Signature.fromPartial(object.ed25519) + : undefined; + message.multiEd25519 = (object.multiEd25519 !== undefined && object.multiEd25519 !== null) + ? MultiEd25519Signature.fromPartial(object.multiEd25519) + : undefined; + message.singleKeySignature = (object.singleKeySignature !== undefined && object.singleKeySignature !== null) + ? SingleKeySignature.fromPartial(object.singleKeySignature) + : undefined; + message.multiKeySignature = (object.multiKeySignature !== undefined && object.multiKeySignature !== null) + ? MultiKeySignature.fromPartial(object.multiKeySignature) + : undefined; + return message; + }, +}; + +function bytesFromBase64(b64: string): Uint8Array { + if (globalThis.Buffer) { + return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); + } else { + const bin = globalThis.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} + +function base64FromBytes(arr: Uint8Array): string { + if (globalThis.Buffer) { + return globalThis.Buffer.from(arr).toString("base64"); + } else { + const bin: string[] = []; + arr.forEach((byte) => { + bin.push(globalThis.String.fromCharCode(byte)); + }); + return globalThis.btoa(bin.join("")); + } +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/util/timestamp/timestamp.ts b/protos/typescript/src/aptos/util/timestamp/timestamp.ts new file mode 100644 index 0000000000000..9d3078718d9e7 --- /dev/null +++ b/protos/typescript/src/aptos/util/timestamp/timestamp.ts @@ -0,0 +1,151 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface Timestamp { + /** + * Represents seconds of UTC time since Unix epoch + * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + * 9999-12-31T23:59:59Z inclusive. + */ + seconds?: + | bigint + | undefined; + /** + * Non-negative fractions of a second at nanosecond resolution. Negative + * second values with fractions must still have non-negative nanos values + * that count forward in time. Must be from 0 to 999,999,999 + * inclusive. + */ + nanos?: number | undefined; +} + +function createBaseTimestamp(): Timestamp { + return { seconds: BigInt("0"), nanos: 0 }; +} + +export const Timestamp = { + encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.seconds !== undefined && message.seconds !== BigInt("0")) { + if (BigInt.asIntN(64, message.seconds) !== message.seconds) { + throw new Error("value provided for field message.seconds of type int64 too large"); + } + writer.uint32(8).int64(message.seconds.toString()); + } + if (message.nanos !== undefined && message.nanos !== 0) { + writer.uint32(16).int32(message.nanos); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTimestamp(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.seconds = longToBigint(reader.int64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.nanos = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Timestamp.encode(p).finish()]; + } + } else { + yield* [Timestamp.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Timestamp.decode(p)]; + } + } else { + yield* [Timestamp.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Timestamp { + return { + seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt("0"), + nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0, + }; + }, + + toJSON(message: Timestamp): unknown { + const obj: any = {}; + if (message.seconds !== undefined && message.seconds !== BigInt("0")) { + obj.seconds = message.seconds.toString(); + } + if (message.nanos !== undefined && message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } + return obj; + }, + + create(base?: DeepPartial): Timestamp { + return Timestamp.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Timestamp { + const message = createBaseTimestamp(); + message.seconds = object.seconds ?? BigInt("0"); + message.nanos = object.nanos ?? 0; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts b/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts new file mode 100644 index 0000000000000..57af9d4707513 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.bigquery_schema.transaction.v1"; diff --git a/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts b/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts new file mode 100644 index 0000000000000..4fb576536c1b8 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/bigquery_schema/v1/transaction"; diff --git a/protos/typescript/src/index.aptos.bigquery_schema.ts b/protos/typescript/src/index.aptos.bigquery_schema.ts new file mode 100644 index 0000000000000..b82d98837f894 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as transaction from "./index.aptos.bigquery_schema.transaction"; diff --git a/protos/typescript/src/index.aptos.indexer.ts b/protos/typescript/src/index.aptos.indexer.ts new file mode 100644 index 0000000000000..c437f202304bd --- /dev/null +++ b/protos/typescript/src/index.aptos.indexer.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.indexer.v1"; diff --git a/protos/typescript/src/index.aptos.indexer.v1.ts b/protos/typescript/src/index.aptos.indexer.v1.ts new file mode 100644 index 0000000000000..b3dd8fc7ceb72 --- /dev/null +++ b/protos/typescript/src/index.aptos.indexer.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/indexer/v1/raw_data"; diff --git a/protos/typescript/src/index.aptos.internal.fullnode.ts b/protos/typescript/src/index.aptos.internal.fullnode.ts new file mode 100644 index 0000000000000..5ffb1299ca909 --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.fullnode.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.internal.fullnode.v1"; diff --git a/protos/typescript/src/index.aptos.internal.fullnode.v1.ts b/protos/typescript/src/index.aptos.internal.fullnode.v1.ts new file mode 100644 index 0000000000000..e7a3916b28680 --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.fullnode.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/internal/fullnode/v1/fullnode_data"; diff --git a/protos/typescript/src/index.aptos.internal.ts b/protos/typescript/src/index.aptos.internal.ts new file mode 100644 index 0000000000000..2835be6041a2a --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as fullnode from "./index.aptos.internal.fullnode"; diff --git a/protos/typescript/src/index.aptos.remote_executor.ts b/protos/typescript/src/index.aptos.remote_executor.ts new file mode 100644 index 0000000000000..d46c4b1ea5e2b --- /dev/null +++ b/protos/typescript/src/index.aptos.remote_executor.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.remote_executor.v1"; diff --git a/protos/typescript/src/index.aptos.remote_executor.v1.ts b/protos/typescript/src/index.aptos.remote_executor.v1.ts new file mode 100644 index 0000000000000..db0d9647752c2 --- /dev/null +++ b/protos/typescript/src/index.aptos.remote_executor.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/remote_executor/v1/network_msg"; diff --git a/protos/typescript/src/index.aptos.transaction.ts b/protos/typescript/src/index.aptos.transaction.ts new file mode 100644 index 0000000000000..ce34cc3b81763 --- /dev/null +++ b/protos/typescript/src/index.aptos.transaction.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.transaction.v1"; diff --git a/protos/typescript/src/index.aptos.transaction.v1.ts b/protos/typescript/src/index.aptos.transaction.v1.ts new file mode 100644 index 0000000000000..21896c6ef5856 --- /dev/null +++ b/protos/typescript/src/index.aptos.transaction.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/transaction/v1/transaction"; diff --git a/protos/typescript/src/index.aptos.ts b/protos/typescript/src/index.aptos.ts new file mode 100644 index 0000000000000..b847dd590ac5e --- /dev/null +++ b/protos/typescript/src/index.aptos.ts @@ -0,0 +1,8 @@ +/* eslint-disable */ + +export * as bigquery_schema from "./index.aptos.bigquery_schema"; +export * as util from "./index.aptos.util"; +export * as transaction from "./index.aptos.transaction"; +export * as indexer from "./index.aptos.indexer"; +export * as internal from "./index.aptos.internal"; +export * as remote_executor from "./index.aptos.remote_executor"; diff --git a/protos/typescript/src/index.aptos.util.timestamp.ts b/protos/typescript/src/index.aptos.util.timestamp.ts new file mode 100644 index 0000000000000..8f0d4199a1e00 --- /dev/null +++ b/protos/typescript/src/index.aptos.util.timestamp.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/util/timestamp/timestamp"; diff --git a/protos/typescript/src/index.aptos.util.ts b/protos/typescript/src/index.aptos.util.ts new file mode 100644 index 0000000000000..ddcef4716b743 --- /dev/null +++ b/protos/typescript/src/index.aptos.util.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as timestamp from "./index.aptos.util.timestamp"; diff --git a/protos/typescript/src/index.ts b/protos/typescript/src/index.ts new file mode 100644 index 0000000000000..73b04cc86ba1b --- /dev/null +++ b/protos/typescript/src/index.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as aptos from "./index.aptos"; diff --git a/protos/typescript/tsconfig.json b/protos/typescript/tsconfig.json new file mode 100644 index 0000000000000..3523f50306947 --- /dev/null +++ b/protos/typescript/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "strict": true, + "target": "es2021", + "moduleResolution": "node", + "declaration": true, + "sourceMap": true, + "experimentalDecorators": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": false, + "noImplicitReturns": true, + "allowSyntheticDefaultImports": true, + "useDefineForClassFields": true, + "esModuleInterop": true, + "skipLibCheck": false, + "forceConsistentCasingInFileNames": true + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +}