diff --git a/Cargo.toml b/Cargo.toml index 71517c78..33ecf492 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,7 @@ [workspace] members = [ "crates/bindings", - "crates/bindings_old", - # "crates/clairvoyance", - # "crates/architect", "crates/cli", - "crates/utils", "crates/simulate" ] diff --git a/README.md b/README.md index 5cad0a7e..355ce81c 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,16 @@ cargo doc --workspace --no-deps --open ``` This will generate and open the docs in your browser. From there, you can look at the documentation for each crate in the Arbiter workspace. +## Including More Contracts + +In the `lib/` folder you can add additional smart contracts or regenerate Rust bindings. To do so, run the following from the Arbiter root directory: + +``` +./bind.sh +``` + +At the moment, this only builds the bindings for the contracts in the `lib/arbmod/contracts/` and `lib/portfolio/contracts`. You can of course add an additional directory of contracts in `lib/`. Just be sure to include it when you generate bindings! + ## Contributing See our [Contributing Guidelines](https://github.com/primitivefinance/arbiter/blob/main/.github/CONTRIBUTING.md) diff --git a/crates/bindings_old/LICENSE b/bind.sh old mode 100644 new mode 100755 similarity index 93% rename from crates/bindings_old/LICENSE rename to bind.sh index 261eeb9e..d17fd36c --- a/crates/bindings_old/LICENSE +++ b/bind.sh @@ -1,4 +1,23 @@ - Apache License +#!/bin/bash + +forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file +echo "Generated bindings for arbmod" +forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file +echo "Generated bindings for portfolio" + +#!/bin/bash + +# Define the input and output files +input_file="crates/bindings/Cargo.toml" +output_file="crates/bindings/Cargo-updated.toml" + +# Use sed to search and replace a string in the input file +sed 's/git = "https:\/\/github.com\/gakonst\/ethers-rs"/version = "=2.0.0"/g' "$input_file" > "$output_file" +mv "$output_file" "$input_file" + + + +echo " Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -198,4 +217,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. + limitations under the License." > crates/bindings/LICENSE \ No newline at end of file diff --git a/crates/bindings/Cargo.toml b/crates/bindings/Cargo.toml index aa8914b6..18d6752f 100644 --- a/crates/bindings/Cargo.toml +++ b/crates/bindings/Cargo.toml @@ -6,6 +6,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] - -ethers = "=2.0.0" -serde_json = "1.0.79" \ No newline at end of file +ethers = { version = "=2.0.0", default-features = false, features = ["abigen"] } diff --git a/crates/bindings/LICENSE b/crates/bindings/LICENSE index 261eeb9e..ec28aab5 100644 --- a/crates/bindings/LICENSE +++ b/crates/bindings/LICENSE @@ -6,38 +6,38 @@ 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + License shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + control means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + Object form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -45,21 +45,21 @@ separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, submitted means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as Not a Contribution. - "Contributor" shall mean Licensor and any individual or Legal Entity + Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -103,7 +103,7 @@ excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a NOTICE text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -142,7 +142,7 @@ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -178,24 +178,24 @@ APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" + boilerplate notice, with the fields enclosed by brackets [] replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same printed page as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/crates/bindings/src/account_lib.rs b/crates/bindings/src/account_lib.rs deleted file mode 100644 index 1ea6fdf8..00000000 --- a/crates/bindings/src/account_lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use account_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod account_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct AccountLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AccountLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AccountLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AccountLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AccountLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AccountLib)) - .field(&self.address()) - .finish() - } - } - impl AccountLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ACCOUNTLIB_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for AccountLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/arbiter_token.rs b/crates/bindings/src/arbiter_token.rs deleted file mode 100644 index a4cf23d7..00000000 --- a/crates/bindings/src/arbiter_token.rs +++ /dev/null @@ -1,28 +0,0 @@ -pub use arbiter_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod arbiter_token { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - ///The bytecode of the contract. - pub static ARBITERTOKEN_BYTECODE: ::ethers::contract::Lazy<::ethers::core::types::Bytes> = - ::ethers::contract::Lazy::new(|| { - "0x60806040523480156200001157600080fd5b5060405162000c3738038062000c37833981016040819052620000349162000123565b818160036200004483826200021c565b5060046200005382826200021c565b5050505050620002e8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b81604052838152602092508683858801011115620000eb57600080fd5b600091505b838210156200010f5785820183015181830184015290820190620000f0565b600093810190920192909252949350505050565b600080604083850312156200013757600080fd5b82516001600160401b03808211156200014f57600080fd5b6200015d8683870162000074565b935060208501519150808211156200017457600080fd5b50620001838582860162000074565b9150509250929050565b600181811c90821680620001a257607f821691505b602082108103620001c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021757600081815260208120601f850160051c81016020861015620001f25750805b601f850160051c820191505b818110156200021357828155600101620001fe565b5050505b505050565b81516001600160401b038111156200023857620002386200005e565b62000250816200024984546200018d565b84620001c9565b602080601f8311600181146200028857600084156200026f5750858301515b600019600386901b1c1916600185901b17855562000213565b600085815260208120601f198616915b82811015620002b95788860151825594840194600190910190840162000298565b5085821015620002d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61093f80620002f86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610789565b60405180910390f35b6100ea6100e53660046107f3565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461081d565b61026c565b604051601281526020016100ce565b6100ea61013c3660046107f3565b610290565b61015461014f3660046107f3565b6102b2565b005b6100fe610164366004610859565b6001600160a01b031660009081526020819052604090205490565b6100c16102c0565b6100ea6101953660046107f3565b6102cf565b6100ea6101a83660046107f3565b61034f565b6100fe6101bb36600461087b565b61035d565b6060600380546101cf906108ae565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108ae565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610388565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035d565b6102ad91906108e8565b610388565b6102bc82826106ca565b5050565b6060600480546101cf906108ae565b600033816102dd828661035d565b9050838110156103425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610388565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610339565b6001600160a01b03821661044b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610339565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b8848461035d565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610339565b6105208484848403610388565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610339565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610339565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610339565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610520565b6001600160a01b0382166107205760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610339565b806002600082825461073291906108e8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b65785810183015185820160400152820161079a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107ee57600080fd5b919050565b6000806040838503121561080657600080fd5b61080f836107d7565b946020939093013593505050565b60008060006060848603121561083257600080fd5b61083b846107d7565b9250610849602085016107d7565b9150604084013590509250925092565b60006020828403121561086b57600080fd5b610874826107d7565b9392505050565b6000806040838503121561088e57600080fd5b610897836107d7565b91506108a5602084016107d7565b90509250929050565b600181811c908216806108c257607f821691505b6020821081036108e257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026657634e487b7160e01b600052601160045260246000fdfea2646970667358221220ce18b75f426b19b69f05ad01dd061a2e2f303f71de2f227a5009bf4965b14dca64736f6c63430008110033" - .parse() - .expect("invalid bytecode") - }); -} diff --git a/crates/bindings/src/assembly_lib.rs b/crates/bindings/src/assembly_lib.rs deleted file mode 100644 index 48d86f90..00000000 --- a/crates/bindings/src/assembly_lib.rs +++ /dev/null @@ -1,341 +0,0 @@ -pub use assembly_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod assembly_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 43, - 19, - 162, - 183, - 196, - 4, - 36, - 151, - 85, - 55, - 170, - 48, - 137, - 165, - 111, - 103, - 28, - 22, - 220, - 80, - 120, - 115, - 144, - 25, - 73, - 105, - 95, - 19, - 28, - 165, - 134, - 170, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 43, - 19, - 162, - 183, - 196, - 4, - 36, - 151, - 85, - 55, - 170, - 48, - 137, - 165, - 111, - 103, - 28, - 22, - 220, - 80, - 120, - 115, - 144, - 25, - 73, - 105, - 95, - 19, - 28, - 165, - 134, - 170, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct AssemblyLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AssemblyLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AssemblyLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AssemblyLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AssemblyLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AssemblyLib)) - .field(&self.address()) - .finish() - } - } - impl AssemblyLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ASSEMBLYLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ASSEMBLYLIB_ABI.clone(), - ASSEMBLYLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for AssemblyLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/echidna_erc20.rs b/crates/bindings/src/echidna_erc20.rs deleted file mode 100644 index 937acfe8..00000000 --- a/crates/bindings/src/echidna_erc20.rs +++ /dev/null @@ -1,7911 +0,0 @@ -pub use echidna_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod echidna_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 43, - 56, - 3, - 128, - 98, - 0, - 15, - 43, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 7, - 86, - 91, - 131, - 81, - 98, - 0, - 0, - 73, - 144, - 96, - 3, - 144, - 96, - 32, - 135, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 130, - 81, - 98, - 0, - 0, - 95, - 144, - 96, - 4, - 144, - 96, - 32, - 134, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 96, - 5, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 97, - 1, - 0, - 2, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 146, - 22, - 96, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 23, - 144, - 85, - 80, - 98, - 0, - 2, - 231, - 144, - 80, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 0, - 162, - 144, - 98, - 0, - 2, - 171, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 0, - 198, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 0, - 225, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 17, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 17, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 0, - 244, - 86, - 91, - 80, - 98, - 0, - 1, - 31, - 146, - 145, - 80, - 98, - 0, - 1, - 35, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 31, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 36, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 98, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 127, - 87, - 98, - 0, - 1, - 127, - 98, - 0, - 1, - 58, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 1, - 170, - 87, - 98, - 0, - 1, - 170, - 98, - 0, - 1, - 58, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 1, - 199, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 1, - 235, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 1, - 204, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 1, - 253, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 98, - 0, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 132, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 68, - 136, - 131, - 137, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 149, - 80, - 96, - 32, - 135, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 106, - 135, - 130, - 136, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 147, - 80, - 80, - 96, - 64, - 133, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 96, - 134, - 1, - 81, - 144, - 146, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 147, - 150, - 146, - 149, - 80, - 144, - 147, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 2, - 192, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 2, - 225, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 97, - 12, - 52, - 128, - 98, - 0, - 2, - 247, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 166, - 44, - 153, - 42, - 224, - 36, - 116, - 191, - 120, - 218, - 156, - 103, - 148, - 20, - 85, - 38, - 51, - 187, - 136, - 5, - 167, - 211, - 232, - 254, - 190, - 112, - 225, - 133, - 128, - 8, - 123, - 109, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 166, - 44, - 153, - 42, - 224, - 36, - 116, - 191, - 120, - 218, - 156, - 103, - 148, - 20, - 85, - 38, - 51, - 187, - 136, - 5, - 167, - 211, - 232, - 254, - 190, - 112, - 225, - 133, - 128, - 8, - 123, - 109, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct EchidnaERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for EchidnaERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for EchidnaERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for EchidnaERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for EchidnaERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(EchidnaERC20)) - .field(&self.address()) - .finish() - } - } - impl EchidnaERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ECHIDNAERC20_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ECHIDNAERC20_ABI.clone(), - ECHIDNAERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `Portfolio` (0x50d3f47c) function - pub fn portfolio( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([80, 211, 244, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function - pub fn decrease_allowance( - &self, - spender: ::ethers::core::types::Address, - subtracted_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([164, 87, 194, 215], (spender, subtracted_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseAllowance` (0x39509351) function - pub fn increase_allowance( - &self, - spender: ::ethers::core::types::Address, - added_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([57, 80, 147, 81], (spender, added_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setDecimals` (0x7a1395aa) function - pub fn set_decimals( - &self, - decimals: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([122, 19, 149, 170], decimals) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, EchidnaERC20Events> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for EchidnaERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(EchidnaERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for EchidnaERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "Portfolio", abi = "Portfolio()")] - pub struct PortfolioCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] - pub struct DecreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub subtracted_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] - pub struct IncreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub added_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] - pub struct SetDecimalsCall { - pub decimals: u8, - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Calls { - Portfolio(PortfolioCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - DecreaseAllowance(DecreaseAllowanceCall), - IncreaseAllowance(IncreaseAllowanceCall), - Mint(MintCall), - Name(NameCall), - SetDecimals(SetDecimalsCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Portfolio(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DecreaseAllowance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IncreaseAllowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SetDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { - fn encode(self) -> Vec { - match self { - Self::Portfolio(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DecreaseAllowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IncreaseAllowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for EchidnaERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: PortfolioCall) -> Self { - Self::Portfolio(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecreaseAllowanceCall) -> Self { - Self::DecreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: IncreaseAllowanceCall) -> Self { - Self::IncreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SetDecimalsCall) -> Self { - Self::SetDecimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PortfolioReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IncreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/erc20.rs b/crates/bindings/src/erc20.rs deleted file mode 100644 index c6c28b41..00000000 --- a/crates/bindings/src/erc20.rs +++ /dev/null @@ -1,737 +0,0 @@ -pub use erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct ERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for ERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(ERC20)) - .field(&self.address()) - .finish() - } - } - impl ERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ERC20_ABI.clone(), - client, - )) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for ERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for ERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(ERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(ERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for ERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for ERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fee_on_transfer_token.rs b/crates/bindings/src/fee_on_transfer_token.rs deleted file mode 100644 index 669cb031..00000000 --- a/crates/bindings/src/fee_on_transfer_token.rs +++ /dev/null @@ -1,8307 +0,0 @@ -pub use fee_on_transfer_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fee_on_transfer_token { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 16, - 163, - 56, - 3, - 128, - 98, - 0, - 16, - 163, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 160, - 86, - 91, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 82, - 146, - 145, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 104, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 126, - 98, - 0, - 0, - 145, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 4, - 4, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 197, - 145, - 144, - 98, - 0, - 3, - 97, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 59, - 144, - 98, - 0, - 3, - 37, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 95, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 122, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 170, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 170, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 141, - 86, - 91, - 80, - 98, - 0, - 1, - 184, - 146, - 145, - 80, - 98, - 0, - 1, - 188, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 184, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 189, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 251, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 24, - 87, - 98, - 0, - 2, - 24, - 98, - 0, - 1, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 67, - 87, - 98, - 0, - 2, - 67, - 98, - 0, - 1, - 211, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 96, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 132, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 101, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 150, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 182, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 206, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 220, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 243, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 3, - 2, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 58, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 91, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 126, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 158, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 181, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 199, - 87, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 238, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 211, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 12, - 111, - 98, - 0, - 4, - 52, - 96, - 0, - 57, - 96, - 0, - 97, - 3, - 243, - 1, - 82, - 96, - 0, - 97, - 3, - 190, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 12, - 111, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 223, - 106, - 233, - 123, - 247, - 35, - 161, - 180, - 87, - 225, - 58, - 215, - 25, - 1, - 131, - 12, - 87, - 127, - 103, - 61, - 202, - 253, - 33, - 91, - 87, - 158, - 241, - 170, - 34, - 20, - 41, - 249, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 223, - 106, - 233, - 123, - 247, - 35, - 161, - 180, - 87, - 225, - 58, - 215, - 25, - 1, - 131, - 12, - 87, - 127, - 103, - 61, - 202, - 253, - 33, - 91, - 87, - 158, - 241, - 170, - 34, - 20, - 41, - 249, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FeeOnTransferToken(::ethers::contract::Contract); - impl ::core::clone::Clone for FeeOnTransferToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FeeOnTransferToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FeeOnTransferToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FeeOnTransferToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FeeOnTransferToken)) - .field(&self.address()) - .finish() - } - } - impl FeeOnTransferToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FEEONTRANSFERTOKEN_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FEEONTRANSFERTOKEN_ABI.clone(), - FEEONTRANSFERTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, FeeOnTransferTokenEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for FeeOnTransferToken - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for FeeOnTransferTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenCalls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for FeeOnTransferTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fixed_point_math_lib.rs b/crates/bindings/src/fixed_point_math_lib.rs deleted file mode 100644 index 629ab52f..00000000 --- a/crates/bindings/src/fixed_point_math_lib.rs +++ /dev/null @@ -1,343 +0,0 @@ -pub use fixed_point_math_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fixed_point_math_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 10, - 31, - 207, - 94, - 138, - 157, - 89, - 69, - 87, - 143, - 145, - 109, - 224, - 173, - 93, - 237, - 220, - 229, - 204, - 196, - 69, - 167, - 59, - 46, - 155, - 228, - 45, - 45, - 50, - 239, - 24, - 98, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 10, - 31, - 207, - 94, - 138, - 157, - 89, - 69, - 87, - 143, - 145, - 109, - 224, - 173, - 93, - 237, - 220, - 229, - 204, - 196, - 69, - 167, - 59, - 46, - 155, - 228, - 45, - 45, - 50, - 239, - 24, - 98, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FixedPointMathLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FixedPointMathLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FixedPointMathLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FixedPointMathLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FixedPointMathLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FixedPointMathLib)) - .field(&self.address()) - .finish() - } - } - impl FixedPointMathLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FIXEDPOINTMATHLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FIXEDPOINTMATHLIB_ABI.clone(), - FIXEDPOINTMATHLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for FixedPointMathLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/fvm_lib.rs b/crates/bindings/src/fvm_lib.rs deleted file mode 100644 index 840d3cf3..00000000 --- a/crates/bindings/src/fvm_lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use fvm_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fvm_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct FVMLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FVMLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FVMLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FVMLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FVMLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FVMLib)) - .field(&self.address()) - .finish() - } - } - impl FVMLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FVMLIB_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for FVMLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/gaussian.rs b/crates/bindings/src/gaussian.rs deleted file mode 100644 index 4292c8cf..00000000 --- a/crates/bindings/src/gaussian.rs +++ /dev/null @@ -1,438 +0,0 @@ -pub use gaussian::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod gaussian { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 14, - 255, - 23, - 173, - 119, - 102, - 152, - 242, - 172, - 97, - 209, - 235, - 34, - 92, - 219, - 61, - 1, - 48, - 77, - 110, - 66, - 201, - 11, - 36, - 108, - 137, - 175, - 176, - 159, - 142, - 30, - 193, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 14, - 255, - 23, - 173, - 119, - 102, - 152, - 242, - 172, - 97, - 209, - 235, - 34, - 92, - 219, - 61, - 1, - 48, - 77, - 110, - 66, - 201, - 11, - 36, - 108, - 137, - 175, - 176, - 159, - 142, - 30, - 193, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Gaussian(::ethers::contract::Contract); - impl ::core::clone::Clone for Gaussian { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Gaussian { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Gaussian { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Gaussian { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Gaussian)) - .field(&self.address()) - .finish() - } - } - impl Gaussian { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - GAUSSIAN_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - GAUSSIAN_ABI.clone(), - GAUSSIAN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Gaussian { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum GaussianErrors { - Infinity(Infinity), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - } - impl ::ethers::core::abi::AbiDecode for GaussianErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for GaussianErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for GaussianErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio.rs b/crates/bindings/src/i_portfolio.rs deleted file mode 100644 index cfca93cc..00000000 --- a/crates/bindings/src/i_portfolio.rs +++ /dev/null @@ -1,1790 +0,0 @@ -pub use i_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolio)) - .field(&self.address()) - .finish() - } - } - impl IPortfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIO_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IPortfolioEvents> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for IPortfolio { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_actions.rs b/crates/bindings/src/i_portfolio_actions.rs deleted file mode 100644 index e308dd8c..00000000 --- a/crates/bindings/src/i_portfolio_actions.rs +++ /dev/null @@ -1,314 +0,0 @@ -pub use i_portfolio_actions::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_actions { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioActions(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioActions { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioActions { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioActions { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioActions { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioActions)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioActions { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOACTIONS_ABI.clone(), - client, - )) - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioActions - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioActionsCalls { - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - Multiprocess(MultiprocessCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { - fn encode(self) -> Vec { - match self { - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioActionsCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_events.rs b/crates/bindings/src/i_portfolio_events.rs deleted file mode 100644 index 4b69113c..00000000 --- a/crates/bindings/src/i_portfolio_events.rs +++ /dev/null @@ -1,596 +0,0 @@ -pub use i_portfolio_events::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_events { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioEvents(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioEvents { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioEvents { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioEvents { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioEvents)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioEvents { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOEVENTS_ABI.clone(), - client, - )) - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IPortfolioEventsEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IPortfolioEvents - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEventsEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEventsEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_getters.rs b/crates/bindings/src/i_portfolio_getters.rs deleted file mode 100644 index 9c33328f..00000000 --- a/crates/bindings/src/i_portfolio_getters.rs +++ /dev/null @@ -1,1041 +0,0 @@ -pub use i_portfolio_getters::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_getters { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioGetters(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioGetters { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioGetters { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioGetters { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioGetters { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioGetters)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioGetters { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOGETTERS_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioGetters - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioGettersCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioGettersCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_registry.rs b/crates/bindings/src/i_portfolio_registry.rs deleted file mode 100644 index 3c13f8d0..00000000 --- a/crates/bindings/src/i_portfolio_registry.rs +++ /dev/null @@ -1,98 +0,0 @@ -pub use i_portfolio_registry::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_registry { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioRegistry { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioRegistry { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioRegistry { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioRegistry)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioRegistry { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOREGISTRY_ABI.clone(), - client, - )) - } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([247, 124, 71, 145], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioRegistry - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/ierc20.rs b/crates/bindings/src/ierc20.rs deleted file mode 100644 index 9e0a8a9a..00000000 --- a/crates/bindings/src/ierc20.rs +++ /dev/null @@ -1,511 +0,0 @@ -pub use ierc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod ierc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC20)) - .field(&self.address()) - .finish() - } - } - impl IERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IERC20_ABI.clone(), - client, - )) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for IERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20Calls { - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC20Calls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/invariant.rs b/crates/bindings/src/invariant.rs deleted file mode 100644 index 649d49b2..00000000 --- a/crates/bindings/src/invariant.rs +++ /dev/null @@ -1,354 +0,0 @@ -pub use invariant::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod invariant { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 242, - 76, - 235, - 42, - 11, - 61, - 182, - 51, - 19, - 125, - 91, - 145, - 67, - 216, - 168, - 111, - 211, - 172, - 171, - 65, - 183, - 83, - 158, - 51, - 102, - 213, - 40, - 75, - 213, - 85, - 167, - 42, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 242, - 76, - 235, - 42, - 11, - 61, - 182, - 51, - 19, - 125, - 91, - 145, - 67, - 216, - 168, - 111, - 211, - 172, - 171, - 65, - 183, - 83, - 158, - 51, - 102, - 213, - 40, - 75, - 213, - 85, - 167, - 42, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Invariant(::ethers::contract::Contract); - impl ::core::clone::Clone for Invariant { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Invariant { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Invariant { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Invariant { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Invariant)) - .field(&self.address()) - .finish() - } - } - impl Invariant { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - INVARIANT_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - INVARIANT_ABI.clone(), - INVARIANT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Invariant { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; -} diff --git a/crates/bindings/src/iweth.rs b/crates/bindings/src/iweth.rs deleted file mode 100644 index 3dcba130..00000000 --- a/crates/bindings/src/iweth.rs +++ /dev/null @@ -1,152 +0,0 @@ -pub use iweth::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod iweth { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IWETH(::ethers::contract::Contract); - impl ::core::clone::Clone for IWETH { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IWETH { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IWETH { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IWETH { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IWETH)) - .field(&self.address()) - .finish() - } - } - impl IWETH { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IWETH_ABI.clone(), - client, - )) - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdraw` (0x2e1a7d4d) function - pub fn withdraw( - &self, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([46, 26, 125, 77], wad) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for IWETH { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] - pub struct WithdrawCall { - pub wad: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IWETHCalls { - Deposit(DepositCall), - Withdraw(WithdrawCall), - } - impl ::ethers::core::abi::AbiDecode for IWETHCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Withdraw(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IWETHCalls { - fn encode(self) -> Vec { - match self { - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Withdraw(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IWETHCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: WithdrawCall) -> Self { - Self::Withdraw(value) - } - } -} diff --git a/crates/bindings/src/lib.rs b/crates/bindings/src/lib.rs index d378919f..d2f72621 100644 --- a/crates/bindings/src/lib.rs +++ b/crates/bindings/src/lib.rs @@ -3,37 +3,130217 @@ //! This is autogenerated code. //! Do not manually edit these files. //! These files may be overwritten by the codegen system at any time. -pub mod account_lib; -pub mod arbiter_token; -pub mod assembly_lib; -pub mod echidna_erc20; -pub mod erc20; -pub mod fee_on_transfer_token; -pub mod fixed_point_math_lib; -pub mod fvm_lib; -pub mod gaussian; -pub mod i_portfolio; -pub mod i_portfolio_actions; -pub mod i_portfolio_events; -pub mod i_portfolio_getters; -pub mod i_portfolio_registry; -pub mod ierc20; -pub mod invariant; -pub mod iweth; -pub mod mock_erc20; -pub mod objective; -pub mod portfolio_lib; -pub mod portfolio_like; -pub mod portfolio_virtual; -pub mod rmm01_extended_lib; -pub mod rmm01_lib; -pub mod rmm01_portfolio; -pub mod safe_cast_lib; -pub mod safe_transfer_lib; -pub mod shared_types; -pub mod simple_registry; -pub mod units; -pub mod weth9; - -// Testing -pub mod writer; +pub mod __shared_types { + ///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioCurve { + pub max_price: u128, + pub jit: u16, + pub fee: u16, + pub duration: u16, + pub volatility: u16, + pub priority_fee: u16, + pub created_at: u32, + pub perpetual: bool, + } + ///`PortfolioPair(address,uint8,address,uint8)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioPair { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } +} +pub use account_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod account_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct AccountLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AccountLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for AccountLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for AccountLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for AccountLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(AccountLib)).field(&self.address()).finish() + } + } + impl AccountLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ACCOUNTLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for AccountLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use arbiter_token::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod arbiter_token { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 12, + 55, + 56, + 3, + 128, + 98, + 0, + 12, + 55, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 1, + 35, + 86, + 91, + 129, + 129, + 96, + 3, + 98, + 0, + 0, + 68, + 131, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 96, + 4, + 98, + 0, + 0, + 83, + 130, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 98, + 0, + 2, + 232, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 0, + 134, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 0, + 163, + 87, + 98, + 0, + 0, + 163, + 98, + 0, + 0, + 94, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 0, + 206, + 87, + 98, + 0, + 0, + 206, + 98, + 0, + 0, + 94, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 0, + 235, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 15, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 0, + 240, + 86, + 91, + 96, + 0, + 147, + 129, + 1, + 144, + 146, + 1, + 146, + 144, + 146, + 82, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 1, + 55, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 1, + 93, + 134, + 131, + 135, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 147, + 80, + 96, + 32, + 133, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 116, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 1, + 131, + 133, + 130, + 134, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 1, + 162, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 1, + 195, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 98, + 0, + 2, + 23, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 98, + 0, + 1, + 242, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 98, + 0, + 2, + 19, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 254, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 17, + 21, + 98, + 0, + 2, + 56, + 87, + 98, + 0, + 2, + 56, + 98, + 0, + 0, + 94, + 86, + 91, + 98, + 0, + 2, + 80, + 129, + 98, + 0, + 2, + 73, + 132, + 84, + 98, + 0, + 1, + 141, + 86, + 91, + 132, + 98, + 0, + 1, + 201, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 98, + 0, + 2, + 136, + 87, + 96, + 0, + 132, + 21, + 98, + 0, + 2, + 111, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 98, + 0, + 2, + 19, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 98, + 0, + 2, + 185, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 98, + 0, + 2, + 152, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 98, + 0, + 2, + 216, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 91, + 97, + 9, + 63, + 128, + 98, + 0, + 2, + 248, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 168, + 118, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, + 175, + 36, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ARBITERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 168, + 118, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, + 175, + 36, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ARBITERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct ArbiterToken(::ethers::contract::Contract); + impl ::core::clone::Clone for ArbiterToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for ArbiterToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for ArbiterToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for ArbiterToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(ArbiterToken)).field(&self.address()).finish() + } + } + impl ArbiterToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ARBITERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ARBITERTOKEN_ABI.clone(), + ARBITERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + receiver: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (receiver, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ArbiterTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for ArbiterToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for ArbiterTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ArbiterTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub receiver: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for ArbiterTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ArbiterTokenCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ArbiterTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use assembly_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod assembly_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 143, + 200, + 46, + 223, + 198, + 118, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 143, + 200, + 46, + 223, + 198, + 118, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct AssemblyLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AssemblyLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for AssemblyLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for AssemblyLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for AssemblyLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(AssemblyLib)).field(&self.address()).finish() + } + } + impl AssemblyLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ASSEMBLYLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ASSEMBLYLIB_ABI.clone(), + ASSEMBLYLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for AssemblyLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use context::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod context { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static CONTEXT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Context(::ethers::contract::Contract); + impl ::core::clone::Clone for Context { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Context { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Context { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Context { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Context)).field(&self.address()).finish() + } + } + impl Context { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + CONTEXT_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for Context { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct ERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for ERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for ERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for ERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for ERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(ERC20)).field(&self.address()).finish() + } + } + impl ERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ERC20_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for ERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for ERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(ERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(ERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for ERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ERC20Calls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for ERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ERC20Calls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use echidna_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod echidna_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 43, + 56, + 3, + 128, + 98, + 0, + 15, + 43, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 7, + 86, + 91, + 131, + 81, + 98, + 0, + 0, + 73, + 144, + 96, + 3, + 144, + 96, + 32, + 135, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 130, + 81, + 98, + 0, + 0, + 95, + 144, + 96, + 4, + 144, + 96, + 32, + 134, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 96, + 5, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 97, + 1, + 0, + 2, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 146, + 22, + 96, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 23, + 144, + 85, + 80, + 98, + 0, + 2, + 231, + 144, + 80, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 0, + 162, + 144, + 98, + 0, + 2, + 171, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 0, + 198, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 0, + 225, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 0, + 244, + 86, + 91, + 80, + 98, + 0, + 1, + 31, + 146, + 145, + 80, + 98, + 0, + 1, + 35, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 31, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 36, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 98, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 127, + 87, + 98, + 0, + 1, + 127, + 98, + 0, + 1, + 58, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 1, + 170, + 87, + 98, + 0, + 1, + 170, + 98, + 0, + 1, + 58, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 1, + 199, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 235, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 1, + 204, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 1, + 253, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 98, + 0, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 132, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 68, + 136, + 131, + 137, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 149, + 80, + 96, + 32, + 135, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 106, + 135, + 130, + 136, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 147, + 80, + 80, + 96, + 64, + 133, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 96, + 134, + 1, + 81, + 144, + 146, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 147, + 150, + 146, + 149, + 80, + 144, + 147, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 2, + 192, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 2, + 225, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 97, + 12, + 52, + 128, + 98, + 0, + 2, + 247, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct EchidnaERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for EchidnaERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for EchidnaERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for EchidnaERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for EchidnaERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(EchidnaERC20)).field(&self.address()).finish() + } + } + impl EchidnaERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ECHIDNAERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ECHIDNAERC20_ABI.clone(), + ECHIDNAERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `Portfolio` (0x50d3f47c) function + pub fn portfolio( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([80, 211, 244, 124], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setDecimals` (0x7a1395aa) function + pub fn set_decimals( + &self, + decimals: u8, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([122, 19, 149, 170], decimals) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + EchidnaERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for EchidnaERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(EchidnaERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for EchidnaERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "Portfolio", abi = "Portfolio()")] + pub struct PortfolioCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] + pub struct SetDecimalsCall { + pub decimals: u8, + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Calls { + Portfolio(PortfolioCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + SetDecimals(SetDecimalsCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Portfolio(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { + fn encode(self) -> Vec { + match self { + Self::Portfolio(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for EchidnaERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: PortfolioCall) -> Self { + Self::Portfolio(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SetDecimalsCall) -> Self { + Self::SetDecimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use fvm_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fvm_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct FVMLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FVMLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FVMLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FVMLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FVMLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FVMLib)).field(&self.address()).finish() + } + } + impl FVMLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FVMLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for FVMLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use fee_on_transfer_token::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fee_on_transfer_token { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 16, + 163, + 56, + 3, + 128, + 98, + 0, + 16, + 163, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 160, + 86, + 91, + 130, + 130, + 130, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 82, + 146, + 145, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 104, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 126, + 98, + 0, + 0, + 145, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 4, + 4, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 197, + 145, + 144, + 98, + 0, + 3, + 97, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 59, + 144, + 98, + 0, + 3, + 37, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 95, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 122, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 170, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 170, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 141, + 86, + 91, + 80, + 98, + 0, + 1, + 184, + 146, + 145, + 80, + 98, + 0, + 1, + 188, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 184, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 189, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 251, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 24, + 87, + 98, + 0, + 2, + 24, + 98, + 0, + 1, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 67, + 87, + 98, + 0, + 2, + 67, + 98, + 0, + 1, + 211, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 96, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 132, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 101, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 150, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 182, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 206, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 220, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 243, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 3, + 2, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 58, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 91, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 126, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 158, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 181, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 199, + 87, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 238, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 211, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 12, + 111, + 98, + 0, + 4, + 52, + 96, + 0, + 57, + 96, + 0, + 97, + 3, + 243, + 1, + 82, + 96, + 0, + 97, + 3, + 190, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 12, + 111, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct FeeOnTransferToken(::ethers::contract::Contract); + impl ::core::clone::Clone for FeeOnTransferToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FeeOnTransferToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FeeOnTransferToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FeeOnTransferToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FeeOnTransferToken)).field(&self.address()).finish() + } + } + impl FeeOnTransferToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FEEONTRANSFERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + FEEONTRANSFERTOKEN_ABI.clone(), + FEEONTRANSFERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + FeeOnTransferTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for FeeOnTransferToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for FeeOnTransferTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenCalls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for FeeOnTransferTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use fixed_point_math_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fixed_point_math_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 179, + 57, + 13, + 16, + 88, + 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, + 250, + 111, + 203, + 105, + 140, + 23, + 0, + 140, + 141, + 135, + 222, + 94, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 179, + 57, + 13, + 16, + 88, + 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, + 250, + 111, + 203, + 105, + 140, + 23, + 0, + 140, + 141, + 135, + 222, + 94, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct FixedPointMathLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FixedPointMathLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FixedPointMathLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FixedPointMathLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FixedPointMathLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FixedPointMathLib)).field(&self.address()).finish() + } + } + impl FixedPointMathLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FIXEDPOINTMATHLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + FIXEDPOINTMATHLIB_ABI.clone(), + FIXEDPOINTMATHLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for FixedPointMathLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use gaussian::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod gaussian { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Gaussian(::ethers::contract::Contract); + impl ::core::clone::Clone for Gaussian { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Gaussian { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Gaussian { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Gaussian { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Gaussian)).field(&self.address()).finish() + } + } + impl Gaussian { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + GAUSSIAN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + GAUSSIAN_ABI.clone(), + GAUSSIAN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Gaussian { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum GaussianErrors { + Infinity(Infinity), + NegativeInfinity(NegativeInfinity), + OutOfBounds(OutOfBounds), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for GaussianErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for GaussianErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for GaussianErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for GaussianErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for GaussianErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } +} +pub use ierc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC20)).field(&self.address()).finish() + } + } + impl IERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC20Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC20Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use ierc20_metadata::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc20_metadata { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC20METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC20Metadata(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC20Metadata { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC20Metadata { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC20Metadata { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC20Metadata { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC20Metadata)).field(&self.address()).finish() + } + } + impl IERC20Metadata { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20METADATA_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC20MetadataEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC20Metadata { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC20MetadataEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC20MetadataEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC20MetadataCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC20MetadataCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC20MetadataCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use i_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IPortfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolio)).field(&self.address()).finish() + } + } + impl IPortfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIO_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use i_portfolio_actions::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_actions { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioActions(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioActions { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioActions { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioActions { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioActions { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioActions)).field(&self.address()).finish() + } + } + impl IPortfolioActions { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOACTIONS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioActions { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioActionsCalls { + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + Multiprocess(MultiprocessCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { + fn encode(self) -> Vec { + match self { + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioActionsCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} +pub use i_portfolio_events::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_events { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioEvents(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioEvents { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioEvents { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioEvents { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioEvents)).field(&self.address()).finish() + } + } + impl IPortfolioEvents { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOEVENTS_ABI.clone(), + client, + ), + ) + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEventsEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolioEvents { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEventsEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEventsEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } +} +pub use i_portfolio_getters::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_getters { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioGetters(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioGetters { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioGetters { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioGetters { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioGetters { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioGetters)).field(&self.address()).finish() + } + } + impl IPortfolioGetters { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOGETTERS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioGetters { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioGettersCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioGettersCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for IPortfolioGettersCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use i_portfolio_registry::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_registry { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioRegistry { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioRegistry { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioRegistry { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioRegistry)).field(&self.address()).finish() + } + } + impl IPortfolioRegistry { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOREGISTRY_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([247, 124, 71, 145], ()) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioRegistry { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ControllerReturn(pub ::ethers::core::types::Address); +} +pub use iweth::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod iweth { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IWETH(::ethers::contract::Contract); + impl ::core::clone::Clone for IWETH { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IWETH { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IWETH { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IWETH { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IWETH)).field(&self.address()).finish() + } + } + impl IWETH { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IWETH_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IWETH { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IWETHCalls { + Deposit(DepositCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for IWETHCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IWETHCalls { + fn encode(self) -> Vec { + match self { + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IWETHCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } +} +pub use infinitely_liquid_market::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod infinitely_liquid_market { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PriceChange\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INFINITELYLIQUIDMARKET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 199, + 128, + 97, + 0, + 31, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, + 26, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, + 178, + 54, + 60, + 229, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, + 26, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, + 178, + 54, + 60, + 229, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct InfinitelyLiquidMarket(::ethers::contract::Contract); + impl ::core::clone::Clone for InfinitelyLiquidMarket { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for InfinitelyLiquidMarket { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for InfinitelyLiquidMarket { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for InfinitelyLiquidMarket { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(InfinitelyLiquidMarket)) + .field(&self.address()) + .finish() + } + } + impl InfinitelyLiquidMarket { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INFINITELYLIQUIDMARKET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INFINITELYLIQUIDMARKET_ABI.clone(), + INFINITELYLIQUIDMARKET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `setPrice` (0x91b7f5ed) function + pub fn set_price( + &self, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([145, 183, 245, 237], price) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `PriceChange` event + pub fn price_change_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for InfinitelyLiquidMarket { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "PriceChange", abi = "PriceChange(uint256)")] + pub struct PriceChangeFilter { + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `setPrice` function with signature `setPrice(uint256)` and selector `0x91b7f5ed` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setPrice", abi = "setPrice(uint256)")] + pub struct SetPriceCall { + pub price: ::ethers::core::types::U256, + } +} +pub use invariant::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod invariant { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Invariant(::ethers::contract::Contract); + impl ::core::clone::Clone for Invariant { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Invariant { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Invariant { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Invariant { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Invariant)).field(&self.address()).finish() + } + } + impl Invariant { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INVARIANT_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INVARIANT_ABI.clone(), + INVARIANT_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Invariant { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; +} +pub use mock_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod mock_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 248, + 56, + 3, + 128, + 98, + 0, + 15, + 248, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 154, + 86, + 91, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 79, + 146, + 145, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 101, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 123, + 98, + 0, + 0, + 139, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 3, + 254, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 191, + 145, + 144, + 98, + 0, + 3, + 91, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 53, + 144, + 98, + 0, + 3, + 31, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 89, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 116, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 164, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 164, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 135, + 86, + 91, + 80, + 98, + 0, + 1, + 178, + 146, + 145, + 80, + 98, + 0, + 1, + 182, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 178, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 183, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 245, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 18, + 87, + 98, + 0, + 2, + 18, + 98, + 0, + 1, + 205, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 61, + 87, + 98, + 0, + 2, + 61, + 98, + 0, + 1, + 205, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 90, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 126, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 95, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 144, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 176, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 200, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 214, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 237, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 252, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 52, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 85, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 120, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 152, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 175, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 193, + 87, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 232, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 205, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 11, + 202, + 98, + 0, + 4, + 46, + 96, + 0, + 57, + 96, + 0, + 97, + 4, + 111, + 1, + 82, + 96, + 0, + 97, + 4, + 58, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 11, + 202, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct MockERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for MockERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for MockERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for MockERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for MockERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(MockERC20)).field(&self.address()).finish() + } + } + impl MockERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + MOCKERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + MOCKERC20_ABI.clone(), + MOCKERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + MockERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for MockERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for MockERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(MockERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(MockERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for MockERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Calls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for MockERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for MockERC20Calls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for MockERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use objective::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod objective { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Objective(::ethers::contract::Contract); + impl ::core::clone::Clone for Objective { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Objective { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Objective { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Objective { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Objective)).field(&self.address()).finish() + } + } + impl Objective { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + OBJECTIVE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ObjectiveEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for Objective { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for ObjectiveEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(ObjectiveEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(ObjectiveEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(ObjectiveEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ObjectiveEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ObjectiveCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use portfolio_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLib(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLib)).field(&self.address()).finish() + } + } + impl PortfolioLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for PortfolioLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use portfolio_like::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_like { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLike(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLike { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLike { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLike { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLike { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLike)).field(&self.address()).finish() + } + } + impl PortfolioLike { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIKE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::U256, + p2: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (p0, p1, p2)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + p0: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], p0) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for PortfolioLike { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::U256, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioLikeCalls { + Draw(DrawCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { + fn encode(self) -> Vec { + match self { + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioLikeCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} +pub use portfolio_virtual::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_virtual { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct PortfolioVirtual(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioVirtual { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioVirtual { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioVirtual { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioVirtual { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioVirtual)).field(&self.address()).finish() + } + } + impl PortfolioVirtual { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOVIRTUAL_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PortfolioVirtualEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for PortfolioVirtual { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + NegativeBalance(NegativeBalance), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for PortfolioVirtualErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for PortfolioVirtualErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for PortfolioVirtualErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for PortfolioVirtualEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioVirtualCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for PortfolioVirtualCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use rmm01_extended_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_extended_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01ExtendedLib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01ExtendedLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01ExtendedLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01ExtendedLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01ExtendedLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01ExtendedLib)).field(&self.address()).finish() + } + } + impl RMM01ExtendedLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01EXTENDEDLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01EXTENDEDLIB_ABI.clone(), + RMM01EXTENDEDLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01ExtendedLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use rmm01_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_lib { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Lib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Lib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Lib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Lib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Lib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Lib)).field(&self.address()).finish() + } + } + impl RMM01Lib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01LIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01LIB_ABI.clone(), + RMM01LIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01Lib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01LibErrors { + OverflowWad(OverflowWad), + UndefinedPrice(UndefinedPrice), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01LibErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01LibErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01LibErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } +} +pub use rmm01_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_portfolio { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 96, + 12, + 85, + 52, + 128, + 21, + 98, + 0, + 0, + 27, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 141, + 216, + 56, + 3, + 128, + 98, + 0, + 141, + 216, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 62, + 145, + 98, + 0, + 0, + 128, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 128, + 82, + 22, + 96, + 160, + 82, + 96, + 4, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 98, + 0, + 0, + 184, + 86, + 91, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 0, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 0, + 148, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 0, + 159, + 131, + 98, + 0, + 0, + 99, + 86, + 91, + 145, + 80, + 98, + 0, + 0, + 175, + 96, + 32, + 132, + 1, + 98, + 0, + 0, + 99, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 97, + 140, + 208, + 98, + 0, + 1, + 8, + 96, + 0, + 57, + 96, + 0, + 129, + 129, + 97, + 2, + 36, + 1, + 82, + 129, + 129, + 97, + 24, + 150, + 1, + 82, + 97, + 88, + 223, + 1, + 82, + 96, + 0, + 129, + 129, + 97, + 1, + 225, + 1, + 82, + 129, + 129, + 97, + 8, + 112, + 1, + 82, + 129, + 129, + 97, + 37, + 97, + 1, + 82, + 129, + 129, + 97, + 37, + 157, + 1, + 82, + 97, + 65, + 87, + 1, + 82, + 97, + 140, + 208, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Portfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Portfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Portfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Portfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Portfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Portfolio)).field(&self.address()).finish() + } + } + impl RMM01Portfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01PORTFOLIO_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01PORTFOLIO_ABI.clone(), + RMM01PORTFOLIO_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + RMM01PortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for RMM01Portfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Min", abi = "Min()")] + pub struct Min; + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] + pub struct SwapInputTooSmall; + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + Infinity(Infinity), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + Min(Min), + NegativeBalance(NegativeBalance), + NegativeInfinity(NegativeInfinity), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + OOB(OOB), + OutOfBounds(OutOfBounds), + OverflowWad(OverflowWad), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + SwapInputTooSmall(SwapInputTooSmall), + UndefinedPrice(UndefinedPrice), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::Min(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::OOB(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SwapInputTooSmall(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SwapInputTooSmall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01PortfolioErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01PortfolioErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::Min(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::OOB(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01PortfolioErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Min) -> Self { + Self::Min(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OOB) -> Self { + Self::OOB(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SwapInputTooSmall) -> Self { + Self::SwapInputTooSmall(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for RMM01PortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for RMM01PortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for RMM01PortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub p0: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use safe_cast_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_cast_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeCastLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeCastLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeCastLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeCastLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeCastLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeCastLib)).field(&self.address()).finish() + } + } + impl SafeCastLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFECASTLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFECASTLIB_ABI.clone(), + SAFECASTLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeCastLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use safe_transfer_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_transfer_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeTransferLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeTransferLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeTransferLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeTransferLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeTransferLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeTransferLib)).field(&self.address()).finish() + } + } + impl SafeTransferLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFETRANSFERLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFETRANSFERLIB_ABI.clone(), + SAFETRANSFERLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeTransferLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use simple_registry::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod simple_registry { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 51, + 23, + 144, + 85, + 97, + 2, + 166, + 128, + 97, + 0, + 50, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 65, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 44, + 252, + 244, + 35, + 20, + 97, + 0, + 70, + 87, + 128, + 99, + 229, + 81, + 86, + 181, + 20, + 97, + 0, + 91, + 87, + 128, + 99, + 247, + 124, + 71, + 145, + 20, + 97, + 0, + 110, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 89, + 97, + 0, + 84, + 54, + 96, + 4, + 97, + 1, + 249, + 86, + 91, + 97, + 0, + 157, + 86, + 91, + 0, + 91, + 97, + 0, + 89, + 97, + 0, + 105, + 54, + 96, + 4, + 97, + 2, + 70, + 86, + 91, + 97, + 1, + 70, + 86, + 91, + 96, + 0, + 84, + 97, + 0, + 129, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 5, + 105, + 38, + 181, + 96, + 229, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 133, + 144, + 82, + 131, + 129, + 22, + 96, + 68, + 131, + 1, + 82, + 145, + 130, + 22, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 27, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 120, + 125, + 206, + 61, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 180, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 1, + 244, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 2, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 24, + 133, + 97, + 1, + 221, + 86, + 91, + 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 146, + 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 2, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 98, + 131, + 97, + 1, + 221, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, + 255, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 65, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 44, + 252, + 244, + 35, + 20, + 97, + 0, + 70, + 87, + 128, + 99, + 229, + 81, + 86, + 181, + 20, + 97, + 0, + 91, + 87, + 128, + 99, + 247, + 124, + 71, + 145, + 20, + 97, + 0, + 110, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 89, + 97, + 0, + 84, + 54, + 96, + 4, + 97, + 1, + 249, + 86, + 91, + 97, + 0, + 157, + 86, + 91, + 0, + 91, + 97, + 0, + 89, + 97, + 0, + 105, + 54, + 96, + 4, + 97, + 2, + 70, + 86, + 91, + 97, + 1, + 70, + 86, + 91, + 96, + 0, + 84, + 97, + 0, + 129, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 5, + 105, + 38, + 181, + 96, + 229, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 133, + 144, + 82, + 131, + 129, + 22, + 96, + 68, + 131, + 1, + 82, + 145, + 130, + 22, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 27, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 120, + 125, + 206, + 61, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 180, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 1, + 244, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 2, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 24, + 133, + 97, + 1, + 221, + 86, + 91, + 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 146, + 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 2, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 98, + 131, + 97, + 1, + 221, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, + 255, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SimpleRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for SimpleRegistry { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SimpleRegistry { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SimpleRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SimpleRegistry { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SimpleRegistry)).field(&self.address()).finish() + } + } + impl SimpleRegistry { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SIMPLEREGISTRY_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SIMPLEREGISTRY_ABI.clone(), + SIMPLEREGISTRY_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `claimFee` (0x2cfcf423) function + pub fn claim_fee( + &self, + portfolio: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([247, 124, 71, 145], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setFee` (0xe55156b5) function + pub fn set_fee( + &self, + portfolio: ::ethers::core::types::Address, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([229, 81, 86, 181], (portfolio, fee)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for SimpleRegistry { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] + pub struct ClaimFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] + pub struct SetFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SimpleRegistryCalls { + ClaimFee(ClaimFeeCall), + Controller(ControllerCall), + SetFee(SetFeeCall), + } + impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ClaimFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Controller(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { + fn encode(self) -> Vec { + match self { + Self::ClaimFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Controller(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for SimpleRegistryCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), + Self::Controller(element) => ::core::fmt::Display::fmt(element, f), + Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ClaimFeeCall) -> Self { + Self::ClaimFee(value) + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ControllerCall) -> Self { + Self::Controller(value) + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: SetFeeCall) -> Self { + Self::SetFee(value) + } + } + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ControllerReturn(pub ::ethers::core::types::Address); +} +pub use units::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod units { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Units(::ethers::contract::Contract); + impl ::core::clone::Clone for Units { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Units { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Units { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Units { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Units)).field(&self.address()).finish() + } + } + impl Units { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + UNITS_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for Units { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use weth9::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod weth9 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[]},{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"fallback\",\"outputs\":[]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"guy\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdrawal\",\"outputs\":[],\"anonymous\":false}]"; + ///The parsed JSON ABI of the contract. + pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 13, + 96, + 128, + 129, + 144, + 82, + 127, + 87, + 114, + 97, + 112, + 112, + 101, + 100, + 32, + 69, + 116, + 104, + 101, + 114, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 160, + 144, + 129, + 82, + 97, + 0, + 62, + 145, + 96, + 0, + 145, + 144, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 144, + 145, + 82, + 96, + 4, + 128, + 130, + 82, + 127, + 87, + 69, + 84, + 72, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 32, + 144, + 146, + 1, + 145, + 130, + 82, + 97, + 0, + 131, + 145, + 96, + 1, + 145, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 2, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 18, + 23, + 144, + 85, + 52, + 128, + 21, + 97, + 0, + 157, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 62, + 86, + 91, + 130, + 128, + 84, + 96, + 1, + 129, + 96, + 1, + 22, + 21, + 97, + 1, + 0, + 2, + 3, + 22, + 96, + 2, + 144, + 4, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 96, + 31, + 16, + 97, + 0, + 228, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 97, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 97, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 97, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 97, + 0, + 246, + 86, + 91, + 80, + 97, + 1, + 29, + 146, + 145, + 80, + 97, + 1, + 33, + 86, + 91, + 80, + 144, + 86, + 91, + 97, + 1, + 59, + 145, + 144, + 91, + 128, + 130, + 17, + 21, + 97, + 1, + 29, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 1, + 39, + 86, + 91, + 144, + 86, + 91, + 97, + 6, + 86, + 128, + 97, + 1, + 77, + 96, + 0, + 57, + 96, + 0, + 243, + 0, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 60, + 46, + 146, + 190, + 116, + 6, + 160, + 156, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, + 240, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, + 0, + 41, + ]; + ///The bytecode of the contract. + pub static WETH9_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 60, + 46, + 146, + 190, + 116, + 6, + 160, + 156, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, + 240, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, + 0, + 41, + ]; + ///The deployed bytecode of the contract. + pub static WETH9_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct WETH9(::ethers::contract::Contract); + impl ::core::clone::Clone for WETH9 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for WETH9 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for WETH9 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for WETH9 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(WETH9)).field(&self.address()).finish() + } + } + impl WETH9 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + WETH9_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + WETH9_ABI.clone(), + WETH9_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + guy: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (guy, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + src: ::ethers::core::types::Address, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (src, dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + ///Gets the contract's `Withdrawal` event + pub fn withdrawal_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WithdrawalFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WETH9Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for WETH9 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Withdrawal", abi = "Withdrawal(address,uint256)")] + pub struct WithdrawalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Events { + ApprovalFilter(ApprovalFilter), + DepositFilter(DepositFilter), + TransferFilter(TransferFilter), + WithdrawalFilter(WithdrawalFilter), + } + impl ::ethers::contract::EthLogDecode for WETH9Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(WETH9Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(WETH9Events::DepositFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(WETH9Events::TransferFilter(decoded)); + } + if let Ok(decoded) = WithdrawalFilter::decode_log(log) { + return Ok(WETH9Events::WithdrawalFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for WETH9Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::WithdrawalFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: WithdrawalFilter) -> Self { + Self::WithdrawalFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub src: ::ethers::core::types::Address, + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Deposit(DepositCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for WETH9Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for WETH9Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for WETH9Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use writer::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod writer { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"WasWritten\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"echoString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 197, + 128, + 97, + 0, + 32, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 43, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 13, + 126, + 47, + 206, + 20, + 97, + 0, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 67, + 97, + 0, + 62, + 54, + 96, + 4, + 97, + 1, + 71, + 86, + 91, + 97, + 0, + 89, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 80, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 96, + 96, + 0, + 97, + 0, + 103, + 131, + 130, + 97, + 2, + 207, + 86, + 91, + 80, + 127, + 150, + 111, + 235, + 127, + 22, + 48, + 252, + 188, + 148, + 154, + 121, + 101, + 185, + 139, + 203, + 203, + 152, + 35, + 112, + 159, + 116, + 217, + 236, + 10, + 84, + 130, + 176, + 195, + 48, + 148, + 139, + 148, + 130, + 96, + 64, + 81, + 97, + 0, + 151, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 96, + 0, + 128, + 84, + 97, + 0, + 172, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 0, + 216, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 21, + 97, + 1, + 37, + 87, + 128, + 96, + 31, + 16, + 97, + 0, + 250, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 1, + 37, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 8, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 1, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 130, + 17, + 21, + 97, + 1, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 132, + 1, + 145, + 80, + 132, + 96, + 31, + 131, + 1, + 18, + 97, + 1, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 1, + 151, + 87, + 97, + 1, + 151, + 97, + 1, + 49, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 130, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 131, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 97, + 1, + 191, + 87, + 97, + 1, + 191, + 97, + 1, + 49, + 86, + 91, + 129, + 96, + 64, + 82, + 130, + 129, + 82, + 135, + 96, + 32, + 132, + 135, + 1, + 1, + 17, + 21, + 97, + 1, + 216, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 96, + 32, + 134, + 1, + 96, + 32, + 131, + 1, + 55, + 96, + 0, + 146, + 129, + 1, + 96, + 32, + 1, + 146, + 144, + 146, + 82, + 80, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 37, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 2, + 9, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 2, + 90, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 2, + 122, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 97, + 2, + 202, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 97, + 2, + 167, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 198, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 97, + 2, + 179, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 129, + 17, + 21, + 97, + 2, + 233, + 87, + 97, + 2, + 233, + 97, + 1, + 49, + 86, + 91, + 97, + 2, + 253, + 129, + 97, + 2, + 247, + 132, + 84, + 97, + 2, + 70, + 86, + 91, + 132, + 97, + 2, + 128, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 97, + 3, + 50, + 87, + 96, + 0, + 132, + 21, + 97, + 3, + 26, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 97, + 2, + 198, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 97, + 3, + 97, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 97, + 3, + 66, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 97, + 3, + 127, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, + 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, + 231, + 29, + 1, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 43, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 13, + 126, + 47, + 206, + 20, + 97, + 0, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 67, + 97, + 0, + 62, + 54, + 96, + 4, + 97, + 1, + 71, + 86, + 91, + 97, + 0, + 89, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 80, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 96, + 96, + 0, + 97, + 0, + 103, + 131, + 130, + 97, + 2, + 207, + 86, + 91, + 80, + 127, + 150, + 111, + 235, + 127, + 22, + 48, + 252, + 188, + 148, + 154, + 121, + 101, + 185, + 139, + 203, + 203, + 152, + 35, + 112, + 159, + 116, + 217, + 236, + 10, + 84, + 130, + 176, + 195, + 48, + 148, + 139, + 148, + 130, + 96, + 64, + 81, + 97, + 0, + 151, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 96, + 0, + 128, + 84, + 97, + 0, + 172, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 0, + 216, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 21, + 97, + 1, + 37, + 87, + 128, + 96, + 31, + 16, + 97, + 0, + 250, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 1, + 37, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 8, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 1, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 130, + 17, + 21, + 97, + 1, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 132, + 1, + 145, + 80, + 132, + 96, + 31, + 131, + 1, + 18, + 97, + 1, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 1, + 151, + 87, + 97, + 1, + 151, + 97, + 1, + 49, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 130, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 131, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 97, + 1, + 191, + 87, + 97, + 1, + 191, + 97, + 1, + 49, + 86, + 91, + 129, + 96, + 64, + 82, + 130, + 129, + 82, + 135, + 96, + 32, + 132, + 135, + 1, + 1, + 17, + 21, + 97, + 1, + 216, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 96, + 32, + 134, + 1, + 96, + 32, + 131, + 1, + 55, + 96, + 0, + 146, + 129, + 1, + 96, + 32, + 1, + 146, + 144, + 146, + 82, + 80, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 37, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 2, + 9, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 2, + 90, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 2, + 122, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 97, + 2, + 202, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 97, + 2, + 167, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 198, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 97, + 2, + 179, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 129, + 17, + 21, + 97, + 2, + 233, + 87, + 97, + 2, + 233, + 97, + 1, + 49, + 86, + 91, + 97, + 2, + 253, + 129, + 97, + 2, + 247, + 132, + 84, + 97, + 2, + 70, + 86, + 91, + 132, + 97, + 2, + 128, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 97, + 3, + 50, + 87, + 96, + 0, + 132, + 21, + 97, + 3, + 26, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 97, + 2, + 198, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 97, + 3, + 97, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 97, + 3, + 66, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 97, + 3, + 127, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, + 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, + 231, + 29, + 1, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Writer(::ethers::contract::Contract); + impl ::core::clone::Clone for Writer { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Writer { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Writer { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Writer { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Writer)).field(&self.address()).finish() + } + } + impl Writer { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + WRITER_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + WRITER_ABI.clone(), + WRITER_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `echoString` (0x0d7e2fce) function + pub fn echo_string( + &self, + test_string: ::std::string::String, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([13, 126, 47, 206], test_string) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `WasWritten` event + pub fn was_written_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for Writer { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "WasWritten", abi = "WasWritten(string)")] + pub struct WasWrittenFilter { + pub test_string: ::std::string::String, + } + ///Container type for all input parameters for the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "echoString", abi = "echoString(string)")] + pub struct EchoStringCall { + pub test_string: ::std::string::String, + } + ///Container type for all return fields from the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct EchoStringReturn(pub ::std::string::String); +} diff --git a/crates/bindings/src/mock_erc20.rs b/crates/bindings/src/mock_erc20.rs deleted file mode 100644 index 4ed38131..00000000 --- a/crates/bindings/src/mock_erc20.rs +++ /dev/null @@ -1,7968 +0,0 @@ -pub use mock_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 248, - 56, - 3, - 128, - 98, - 0, - 15, - 248, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 154, - 86, - 91, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 79, - 146, - 145, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 101, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 123, - 98, - 0, - 0, - 139, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 3, - 254, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 191, - 145, - 144, - 98, - 0, - 3, - 91, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 53, - 144, - 98, - 0, - 3, - 31, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 89, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 116, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 164, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 164, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 135, - 86, - 91, - 80, - 98, - 0, - 1, - 178, - 146, - 145, - 80, - 98, - 0, - 1, - 182, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 178, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 183, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 245, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 18, - 87, - 98, - 0, - 2, - 18, - 98, - 0, - 1, - 205, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 61, - 87, - 98, - 0, - 2, - 61, - 98, - 0, - 1, - 205, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 90, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 126, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 95, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 144, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 176, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 200, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 214, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 237, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 252, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 52, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 85, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 120, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 152, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 175, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 193, - 87, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 232, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 205, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 11, - 202, - 98, - 0, - 4, - 46, - 96, - 0, - 57, - 96, - 0, - 97, - 4, - 111, - 1, - 82, - 96, - 0, - 97, - 4, - 58, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 11, - 202, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 246, - 37, - 189, - 229, - 138, - 246, - 52, - 99, - 10, - 251, - 17, - 203, - 240, - 141, - 93, - 137, - 68, - 32, - 134, - 185, - 156, - 213, - 189, - 127, - 138, - 204, - 140, - 8, - 77, - 101, - 241, - 20, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 246, - 37, - 189, - 229, - 138, - 246, - 52, - 99, - 10, - 251, - 17, - 203, - 240, - 141, - 93, - 137, - 68, - 32, - 134, - 185, - 156, - 213, - 189, - 127, - 138, - 204, - 140, - 8, - 77, - 101, - 241, - 20, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(MockERC20)) - .field(&self.address()) - .finish() - } - } - impl MockERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKERC20_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC20_ABI.clone(), - MOCKERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MockERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for MockERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/objective.rs b/crates/bindings/src/objective.rs deleted file mode 100644 index 6555a79a..00000000 --- a/crates/bindings/src/objective.rs +++ /dev/null @@ -1,2081 +0,0 @@ -pub use objective::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod objective { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct Objective(::ethers::contract::Contract); - impl ::core::clone::Clone for Objective { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Objective { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Objective { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Objective { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Objective)) - .field(&self.address()) - .finish() - } - } - impl Objective { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - OBJECTIVE_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ObjectiveEvents> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for Objective { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for ObjectiveEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(ObjectiveEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(ObjectiveEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(ObjectiveEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ObjectiveEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for ObjectiveCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/portfolio_lib.rs b/crates/bindings/src/portfolio_lib.rs deleted file mode 100644 index 740d7dc5..00000000 --- a/crates/bindings/src/portfolio_lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use portfolio_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioLib(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLib)) - .field(&self.address()) - .finish() - } - } - impl PortfolioLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIB_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for PortfolioLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/portfolio_like.rs b/crates/bindings/src/portfolio_like.rs deleted file mode 100644 index ee2c6719..00000000 --- a/crates/bindings/src/portfolio_like.rs +++ /dev/null @@ -1,163 +0,0 @@ -pub use portfolio_like::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_like { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioLike(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLike { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLike { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLike { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLike { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLike)) - .field(&self.address()) - .finish() - } - } - impl PortfolioLike { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIKE_ABI.clone(), - client, - )) - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::U256, - p2: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (p0, p1, p2)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], p0) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for PortfolioLike - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioLikeCalls { - Draw(DrawCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { - fn encode(self) -> Vec { - match self { - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioLikeCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/portfolio_virtual.rs b/crates/bindings/src/portfolio_virtual.rs deleted file mode 100644 index 8c0b89c6..00000000 --- a/crates/bindings/src/portfolio_virtual.rs +++ /dev/null @@ -1,2873 +0,0 @@ -pub use portfolio_virtual::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_virtual { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioVirtual(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioVirtual { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioVirtual { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioVirtual { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioVirtual { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioVirtual)) - .field(&self.address()) - .finish() - } - } - impl PortfolioVirtual { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOVIRTUAL_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PortfolioVirtualEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for PortfolioVirtual - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidBytesLength", - abi = "InvalidBytesLength(uint256,uint256)" - )] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - NegativeBalance(NegativeBalance), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EtherTransferFail(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidJump(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidPair(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidReentrancy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSettlement(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidTransfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::JitLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PairExists(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolExpired(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SameTokenError(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroAmounts(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroOutput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroValue(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioVirtualErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for PortfolioVirtualEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioVirtualCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/rmm01_extended_lib.rs b/crates/bindings/src/rmm01_extended_lib.rs deleted file mode 100644 index 709cff27..00000000 --- a/crates/bindings/src/rmm01_extended_lib.rs +++ /dev/null @@ -1,343 +0,0 @@ -pub use rmm01_extended_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_extended_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 236, - 68, - 44, - 55, - 205, - 99, - 188, - 139, - 34, - 180, - 45, - 64, - 170, - 205, - 10, - 236, - 255, - 231, - 128, - 214, - 13, - 102, - 161, - 167, - 57, - 134, - 212, - 240, - 8, - 118, - 17, - 182, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 236, - 68, - 44, - 55, - 205, - 99, - 188, - 139, - 34, - 180, - 45, - 64, - 170, - 205, - 10, - 236, - 255, - 231, - 128, - 214, - 13, - 102, - 161, - 167, - 57, - 134, - 212, - 240, - 8, - 118, - 17, - 182, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01ExtendedLib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01ExtendedLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01ExtendedLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01ExtendedLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01ExtendedLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01ExtendedLib)) - .field(&self.address()) - .finish() - } - } - impl RMM01ExtendedLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01EXTENDEDLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01EXTENDEDLIB_ABI.clone(), - RMM01EXTENDEDLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for RMM01ExtendedLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/rmm01_lib.rs b/crates/bindings/src/rmm01_lib.rs deleted file mode 100644 index 97c38c94..00000000 --- a/crates/bindings/src/rmm01_lib.rs +++ /dev/null @@ -1,415 +0,0 @@ -pub use rmm01_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_lib { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 132, - 147, - 13, - 73, - 76, - 59, - 205, - 253, - 184, - 240, - 77, - 233, - 115, - 36, - 199, - 216, - 81, - 200, - 116, - 164, - 162, - 168, - 52, - 52, - 101, - 47, - 230, - 248, - 213, - 68, - 82, - 88, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 132, - 147, - 13, - 73, - 76, - 59, - 205, - 253, - 184, - 240, - 77, - 233, - 115, - 36, - 199, - 216, - 81, - 200, - 116, - 164, - 162, - 168, - 52, - 52, - 101, - 47, - 230, - 248, - 213, - 68, - 82, - 88, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01Lib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Lib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Lib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Lib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Lib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Lib)) - .field(&self.address()) - .finish() - } - } - impl RMM01Lib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01LIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01LIB_ABI.clone(), - RMM01LIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for RMM01Lib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01LibErrors { - OverflowWad(OverflowWad), - UndefinedPrice(UndefinedPrice), - } - impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::OverflowWad(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UndefinedPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01LibErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } -} diff --git a/crates/bindings/src/rmm01_portfolio.rs b/crates/bindings/src/rmm01_portfolio.rs deleted file mode 100644 index 66480fa1..00000000 --- a/crates/bindings/src/rmm01_portfolio.rs +++ /dev/null @@ -1,75476 +0,0 @@ -pub use rmm01_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 192, - 96, - 64, - 82, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 96, - 12, - 85, - 52, - 128, - 21, - 98, - 0, - 0, - 27, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 141, - 216, - 56, - 3, - 128, - 98, - 0, - 141, - 216, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 62, - 145, - 98, - 0, - 0, - 128, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 128, - 82, - 22, - 96, - 160, - 82, - 96, - 4, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 98, - 0, - 0, - 184, - 86, - 91, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 0, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 98, - 0, - 0, - 148, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 0, - 159, - 131, - 98, - 0, - 0, - 99, - 86, - 91, - 145, - 80, - 98, - 0, - 0, - 175, - 96, - 32, - 132, - 1, - 98, - 0, - 0, - 99, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 97, - 140, - 208, - 98, - 0, - 1, - 8, - 96, - 0, - 57, - 96, - 0, - 129, - 129, - 97, - 2, - 36, - 1, - 82, - 129, - 129, - 97, - 24, - 150, - 1, - 82, - 97, - 88, - 223, - 1, - 82, - 96, - 0, - 129, - 129, - 97, - 1, - 225, - 1, - 82, - 129, - 129, - 97, - 8, - 112, - 1, - 82, - 129, - 129, - 97, - 37, - 97, - 1, - 82, - 129, - 129, - 97, - 37, - 157, - 1, - 82, - 97, - 65, - 87, - 1, - 82, - 97, - 140, - 208, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 246, - 181, - 87, - 228, - 8, - 186, - 50, - 254, - 35, - 142, - 129, - 142, - 206, - 229, - 25, - 107, - 37, - 36, - 90, - 94, - 79, - 57, - 21, - 155, - 133, - 164, - 58, - 236, - 205, - 96, - 168, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 246, - 181, - 87, - 228, - 8, - 186, - 50, - 254, - 35, - 142, - 129, - 142, - 206, - 229, - 25, - 107, - 37, - 36, - 90, - 94, - 79, - 57, - 21, - 155, - 133, - 164, - 58, - 236, - 205, - 96, - 168, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01Portfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Portfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Portfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Portfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Portfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Portfolio)) - .field(&self.address()) - .finish() - } - } - impl RMM01Portfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01PORTFOLIO_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01PORTFOLIO_ABI.clone(), - RMM01PORTFOLIO_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RMM01PortfolioEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for RMM01Portfolio - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidBytesLength", - abi = "InvalidBytesLength(uint256,uint256)" - )] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] - pub struct SwapInputTooSmall; - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - Infinity(Infinity), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - Min(Min), - NegativeBalance(NegativeBalance), - NegativeInfinity(NegativeInfinity), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - OOB(OOB), - OutOfBounds(OutOfBounds), - OverflowWad(OverflowWad), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - SwapInputTooSmall(SwapInputTooSmall), - UndefinedPrice(UndefinedPrice), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OOB(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::SwapInputTooSmall(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EtherTransferFail(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Infinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidJump(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidPair(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidReentrancy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSettlement(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidTransfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::JitLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OverflowWad(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PairExists(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolExpired(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SameTokenError(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SwapInputTooSmall(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UndefinedPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroAmounts(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroOutput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroValue(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01PortfolioErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::OOB(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OOB) -> Self { - Self::OOB(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SwapInputTooSmall) -> Self { - Self::SwapInputTooSmall(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for RMM01PortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01PortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub p0: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/safe_cast_lib.rs b/crates/bindings/src/safe_cast_lib.rs deleted file mode 100644 index a45c9724..00000000 --- a/crates/bindings/src/safe_cast_lib.rs +++ /dev/null @@ -1,341 +0,0 @@ -pub use safe_cast_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod safe_cast_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 53, - 238, - 101, - 110, - 120, - 193, - 20, - 232, - 24, - 75, - 58, - 214, - 234, - 18, - 218, - 248, - 71, - 199, - 120, - 128, - 106, - 211, - 47, - 241, - 200, - 108, - 199, - 0, - 254, - 220, - 103, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 53, - 238, - 101, - 110, - 120, - 193, - 20, - 232, - 24, - 75, - 58, - 214, - 234, - 18, - 218, - 248, - 71, - 199, - 120, - 128, - 106, - 211, - 47, - 241, - 200, - 108, - 199, - 0, - 254, - 220, - 103, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SafeCastLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeCastLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SafeCastLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SafeCastLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SafeCastLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeCastLib)) - .field(&self.address()) - .finish() - } - } - impl SafeCastLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SAFECASTLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SAFECASTLIB_ABI.clone(), - SAFECASTLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for SafeCastLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/safe_transfer_lib.rs b/crates/bindings/src/safe_transfer_lib.rs deleted file mode 100644 index f020e6f9..00000000 --- a/crates/bindings/src/safe_transfer_lib.rs +++ /dev/null @@ -1,343 +0,0 @@ -pub use safe_transfer_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod safe_transfer_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 117, - 216, - 35, - 6, - 119, - 157, - 134, - 188, - 56, - 217, - 205, - 78, - 145, - 168, - 229, - 21, - 93, - 59, - 44, - 253, - 62, - 167, - 115, - 8, - 75, - 200, - 129, - 62, - 130, - 44, - 123, - 19, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 117, - 216, - 35, - 6, - 119, - 157, - 134, - 188, - 56, - 217, - 205, - 78, - 145, - 168, - 229, - 21, - 93, - 59, - 44, - 253, - 62, - 167, - 115, - 8, - 75, - 200, - 129, - 62, - 130, - 44, - 123, - 19, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SafeTransferLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeTransferLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SafeTransferLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SafeTransferLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SafeTransferLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeTransferLib)) - .field(&self.address()) - .finish() - } - } - impl SafeTransferLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SAFETRANSFERLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SAFETRANSFERLIB_ABI.clone(), - SAFETRANSFERLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SafeTransferLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/shared_types.rs b/crates/bindings/src/shared_types.rs deleted file mode 100644 index f339f313..00000000 --- a/crates/bindings/src/shared_types.rs +++ /dev/null @@ -1,38 +0,0 @@ -///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct PortfolioCurve { - pub max_price: u128, - pub jit: u16, - pub fee: u16, - pub duration: u16, - pub volatility: u16, - pub priority_fee: u16, - pub created_at: u32, - pub perpetual: bool, -} -///`PortfolioPair(address,uint8,address,uint8)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct PortfolioPair { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, -} diff --git a/crates/bindings/src/simple_registry.rs b/crates/bindings/src/simple_registry.rs deleted file mode 100644 index 644e00ed..00000000 --- a/crates/bindings/src/simple_registry.rs +++ /dev/null @@ -1,1668 +0,0 @@ -pub use simple_registry::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod simple_registry { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 51, - 23, - 144, - 85, - 97, - 2, - 166, - 128, - 97, - 0, - 50, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 65, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 44, - 252, - 244, - 35, - 20, - 97, - 0, - 70, - 87, - 128, - 99, - 229, - 81, - 86, - 181, - 20, - 97, - 0, - 91, - 87, - 128, - 99, - 247, - 124, - 71, - 145, - 20, - 97, - 0, - 110, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 89, - 97, - 0, - 84, - 54, - 96, - 4, - 97, - 1, - 249, - 86, - 91, - 97, - 0, - 157, - 86, - 91, - 0, - 91, - 97, - 0, - 89, - 97, - 0, - 105, - 54, - 96, - 4, - 97, - 2, - 70, - 86, - 91, - 97, - 1, - 70, - 86, - 91, - 96, - 0, - 84, - 97, - 0, - 129, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 5, - 105, - 38, - 181, - 96, - 229, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, - 144, - 96, - 100, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 7, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 120, - 125, - 206, - 61, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 180, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 1, - 244, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 2, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 146, - 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 2, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 98, - 131, - 97, - 1, - 221, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 174, - 220, - 99, - 54, - 158, - 73, - 248, - 187, - 2, - 6, - 151, - 3, - 14, - 86, - 41, - 126, - 81, - 138, - 178, - 70, - 6, - 233, - 155, - 137, - 103, - 73, - 120, - 136, - 65, - 88, - 230, - 222, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 65, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 44, - 252, - 244, - 35, - 20, - 97, - 0, - 70, - 87, - 128, - 99, - 229, - 81, - 86, - 181, - 20, - 97, - 0, - 91, - 87, - 128, - 99, - 247, - 124, - 71, - 145, - 20, - 97, - 0, - 110, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 89, - 97, - 0, - 84, - 54, - 96, - 4, - 97, - 1, - 249, - 86, - 91, - 97, - 0, - 157, - 86, - 91, - 0, - 91, - 97, - 0, - 89, - 97, - 0, - 105, - 54, - 96, - 4, - 97, - 2, - 70, - 86, - 91, - 97, - 1, - 70, - 86, - 91, - 96, - 0, - 84, - 97, - 0, - 129, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 5, - 105, - 38, - 181, - 96, - 229, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, - 144, - 96, - 100, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 7, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 120, - 125, - 206, - 61, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 180, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 1, - 244, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 2, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 146, - 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 2, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 98, - 131, - 97, - 1, - 221, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 174, - 220, - 99, - 54, - 158, - 73, - 248, - 187, - 2, - 6, - 151, - 3, - 14, - 86, - 41, - 126, - 81, - 138, - 178, - 70, - 6, - 233, - 155, - 137, - 103, - 73, - 120, - 136, - 65, - 88, - 230, - 222, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SimpleRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for SimpleRegistry { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SimpleRegistry { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SimpleRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SimpleRegistry { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SimpleRegistry)) - .field(&self.address()) - .finish() - } - } - impl SimpleRegistry { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SIMPLEREGISTRY_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SIMPLEREGISTRY_ABI.clone(), - SIMPLEREGISTRY_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `claimFee` (0x2cfcf423) function - pub fn claim_fee( - &self, - portfolio: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([247, 124, 71, 145], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setFee` (0xe55156b5) function - pub fn set_fee( - &self, - portfolio: ::ethers::core::types::Address, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([229, 81, 86, 181], (portfolio, fee)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for SimpleRegistry - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] - pub struct ClaimFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] - pub struct SetFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum SimpleRegistryCalls { - ClaimFee(ClaimFeeCall), - Controller(ControllerCall), - SetFee(SetFeeCall), - } - impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ClaimFee(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Controller(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SetFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { - fn encode(self) -> Vec { - match self { - Self::ClaimFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Controller(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for SimpleRegistryCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), - Self::Controller(element) => ::core::fmt::Display::fmt(element, f), - Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ClaimFeeCall) -> Self { - Self::ClaimFee(value) - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ControllerCall) -> Self { - Self::Controller(value) - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: SetFeeCall) -> Self { - Self::SetFee(value) - } - } - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/units.rs b/crates/bindings/src/units.rs deleted file mode 100644 index ae27b06a..00000000 --- a/crates/bindings/src/units.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use units::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod units { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct Units(::ethers::contract::Contract); - impl ::core::clone::Clone for Units { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Units { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Units { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Units { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Units)) - .field(&self.address()) - .finish() - } - } - impl Units { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UNITS_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for Units { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/weth9.rs b/crates/bindings/src/weth9.rs deleted file mode 100644 index a81fc4dc..00000000 --- a/crates/bindings/src/weth9.rs +++ /dev/null @@ -1,27 +0,0 @@ -pub use weth9::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod weth9 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[]},{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"fallback\",\"outputs\":[]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"guy\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdrawal\",\"outputs\":[],\"anonymous\":false}]"; - ///The parsed JSON ABI of the contract. - pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - pub static WRITER_BYTECODE: ::ethers::contract::Lazy<::ethers::core::types::Bytes> = - ::ethers::contract::Lazy::new(|| { - "0x60c0604052600d60808190527f577261707065642045746865720000000000000000000000000000000000000060a090815261003e91600091906100a3565b506040805180820190915260048082527f57455448000000000000000000000000000000000000000000000000000000006020909201918252610083916001916100a3565b506002805460ff1916601217905534801561009d57600080fd5b5061013e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e457805160ff1916838001178555610111565b82800160010185558215610111579182015b828111156101115782518255916020019190600101906100f6565b5061011d929150610121565b5090565b61013b91905b8082111561011d5760008155600101610127565b90565b6106568061014d6000396000f3006080604052600436106100925760003560e01c63ffffffff16806306fdde031461009c578063095ea7b31461012657806318160ddd1461015e57806323b872dd146101855780632e1a7d4d146101af578063313ce567146101c757806370a08231146101f257806395d89b4114610213578063a9059cbb14610228578063d0e30db014610092578063dd62ed3e1461024c575b61009a610273565b005b3480156100a857600080fd5b506100b16102c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100eb5781810151838201526020016100d3565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013257600080fd5b5061014a600160a060020a0360043516602435610350565b604080519115158252519081900360200190f35b34801561016a57600080fd5b506101736103b6565b60408051918252519081900360200190f35b34801561019157600080fd5b5061014a600160a060020a03600435811690602435166044356103bb565b3480156101bb57600080fd5b5061009a6004356104ef565b3480156101d357600080fd5b506101dc610584565b6040805160ff9092168252519081900360200190f35b3480156101fe57600080fd5b50610173600160a060020a036004351661058d565b34801561021f57600080fd5b506100b161059f565b34801561023457600080fd5b5061014a600160a060020a03600435166024356105f9565b34801561025857600080fd5b50610173600160a060020a036004358116906024351661060d565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103485780601f1061031d57610100808354040283529160200191610348565b820191906000526020600020905b81548152906001019060200180831161032b57829003601f168201915b505050505081565b336000818152600460209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b303190565b600160a060020a0383166000908152600360205260408120548211156103e057600080fd5b600160a060020a038416331480159061041e5750600160a060020a038416600090815260046020908152604080832033845290915290205460001914155b1561047e57600160a060020a038416600090815260046020908152604080832033845290915290205482111561045357600080fd5b600160a060020a03841660009081526004602090815260408083203384529091529020805483900390555b600160a060020a03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561050b57600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f1935050505015801561054a573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103485780601f1061031d57610100808354040283529160200191610348565b60006106063384846103bb565b9392505050565b6004602090815260009283526040808420909152908252902054815600a165627a7a72305820b38b6422067b6cd29b17bad296203c258ff3cf36fe979a2bb8b7400fa77efd7d0029" - .parse() - .expect("invalid bytecode") - }); -} diff --git a/crates/bindings/src/writer.rs b/crates/bindings/src/writer.rs deleted file mode 100644 index 0f6bfd3a..00000000 --- a/crates/bindings/src/writer.rs +++ /dev/null @@ -1,2139 +0,0 @@ -pub use writer::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod writer { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"WasWritten\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"echoString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 197, - 128, - 97, - 0, - 32, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 43, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 13, - 126, - 47, - 206, - 20, - 97, - 0, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 67, - 97, - 0, - 62, - 54, - 96, - 4, - 97, - 1, - 71, - 86, - 91, - 97, - 0, - 89, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 80, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 96, - 96, - 0, - 97, - 0, - 103, - 131, - 130, - 97, - 2, - 207, - 86, - 91, - 80, - 127, - 150, - 111, - 235, - 127, - 22, - 48, - 252, - 188, - 148, - 154, - 121, - 101, - 185, - 139, - 203, - 203, - 152, - 35, - 112, - 159, - 116, - 217, - 236, - 10, - 84, - 130, - 176, - 195, - 48, - 148, - 139, - 148, - 130, - 96, - 64, - 81, - 97, - 0, - 151, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 96, - 0, - 128, - 84, - 97, - 0, - 172, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 0, - 216, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 21, - 97, - 1, - 37, - 87, - 128, - 96, - 31, - 16, - 97, - 0, - 250, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 1, - 37, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 8, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 1, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 130, - 17, - 21, - 97, - 1, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 132, - 1, - 145, - 80, - 132, - 96, - 31, - 131, - 1, - 18, - 97, - 1, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 1, - 151, - 87, - 97, - 1, - 151, - 97, - 1, - 49, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 130, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 131, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 97, - 1, - 191, - 87, - 97, - 1, - 191, - 97, - 1, - 49, - 86, - 91, - 129, - 96, - 64, - 82, - 130, - 129, - 82, - 135, - 96, - 32, - 132, - 135, - 1, - 1, - 17, - 21, - 97, - 1, - 216, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 96, - 32, - 134, - 1, - 96, - 32, - 131, - 1, - 55, - 96, - 0, - 146, - 129, - 1, - 96, - 32, - 1, - 146, - 144, - 146, - 82, - 80, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 37, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 2, - 9, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 2, - 90, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 2, - 122, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 97, - 2, - 202, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 97, - 2, - 167, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 198, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 97, - 2, - 179, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 129, - 17, - 21, - 97, - 2, - 233, - 87, - 97, - 2, - 233, - 97, - 1, - 49, - 86, - 91, - 97, - 2, - 253, - 129, - 97, - 2, - 247, - 132, - 84, - 97, - 2, - 70, - 86, - 91, - 132, - 97, - 2, - 128, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 97, - 3, - 50, - 87, - 96, - 0, - 132, - 21, - 97, - 3, - 26, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 97, - 2, - 198, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 97, - 3, - 97, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 97, - 3, - 66, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 97, - 3, - 127, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 137, - 112, - 208, - 72, - 246, - 111, - 254, - 245, - 44, - 1, - 86, - 134, - 70, - 158, - 106, - 161, - 112, - 122, - 0, - 22, - 170, - 166, - 245, - 66, - 194, - 196, - 208, - 40, - 178, - 225, - 145, - 167, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 43, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 13, - 126, - 47, - 206, - 20, - 97, - 0, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 67, - 97, - 0, - 62, - 54, - 96, - 4, - 97, - 1, - 71, - 86, - 91, - 97, - 0, - 89, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 80, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 96, - 96, - 0, - 97, - 0, - 103, - 131, - 130, - 97, - 2, - 207, - 86, - 91, - 80, - 127, - 150, - 111, - 235, - 127, - 22, - 48, - 252, - 188, - 148, - 154, - 121, - 101, - 185, - 139, - 203, - 203, - 152, - 35, - 112, - 159, - 116, - 217, - 236, - 10, - 84, - 130, - 176, - 195, - 48, - 148, - 139, - 148, - 130, - 96, - 64, - 81, - 97, - 0, - 151, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 96, - 0, - 128, - 84, - 97, - 0, - 172, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 0, - 216, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 21, - 97, - 1, - 37, - 87, - 128, - 96, - 31, - 16, - 97, - 0, - 250, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 1, - 37, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 8, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 1, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 130, - 17, - 21, - 97, - 1, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 132, - 1, - 145, - 80, - 132, - 96, - 31, - 131, - 1, - 18, - 97, - 1, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 1, - 151, - 87, - 97, - 1, - 151, - 97, - 1, - 49, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 130, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 131, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 97, - 1, - 191, - 87, - 97, - 1, - 191, - 97, - 1, - 49, - 86, - 91, - 129, - 96, - 64, - 82, - 130, - 129, - 82, - 135, - 96, - 32, - 132, - 135, - 1, - 1, - 17, - 21, - 97, - 1, - 216, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 96, - 32, - 134, - 1, - 96, - 32, - 131, - 1, - 55, - 96, - 0, - 146, - 129, - 1, - 96, - 32, - 1, - 146, - 144, - 146, - 82, - 80, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 37, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 2, - 9, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 2, - 90, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 2, - 122, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 97, - 2, - 202, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 97, - 2, - 167, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 198, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 97, - 2, - 179, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 129, - 17, - 21, - 97, - 2, - 233, - 87, - 97, - 2, - 233, - 97, - 1, - 49, - 86, - 91, - 97, - 2, - 253, - 129, - 97, - 2, - 247, - 132, - 84, - 97, - 2, - 70, - 86, - 91, - 132, - 97, - 2, - 128, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 97, - 3, - 50, - 87, - 96, - 0, - 132, - 21, - 97, - 3, - 26, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 97, - 2, - 198, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 97, - 3, - 97, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 97, - 3, - 66, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 97, - 3, - 127, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 137, - 112, - 208, - 72, - 246, - 111, - 254, - 245, - 44, - 1, - 86, - 134, - 70, - 158, - 106, - 161, - 112, - 122, - 0, - 22, - 170, - 166, - 245, - 66, - 194, - 196, - 208, - 40, - 178, - 225, - 145, - 167, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Writer(::ethers::contract::Contract); - impl ::core::clone::Clone for Writer { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Writer { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Writer { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Writer { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Writer)) - .field(&self.address()) - .finish() - } - } - impl Writer { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - WRITER_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - WRITER_ABI.clone(), - WRITER_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `echoString` (0x0d7e2fce) function - pub fn echo_string( - &self, - test_string: ::std::string::String, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([13, 126, 47, 206], test_string) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `WasWritten` event - pub fn was_written_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WasWrittenFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WasWrittenFilter> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for Writer { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "WasWritten", abi = "WasWritten(string)")] - pub struct WasWrittenFilter { - pub test_string: ::std::string::String, - } - ///Container type for all input parameters for the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "echoString", abi = "echoString(string)")] - pub struct EchoStringCall { - pub test_string: ::std::string::String, - } - ///Container type for all return fields from the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct EchoStringReturn(pub ::std::string::String); -} diff --git a/crates/bindings_old/Cargo.toml b/crates/bindings_old/Cargo.toml deleted file mode 100644 index 5785036c..00000000 --- a/crates/bindings_old/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "bindings_old" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -ethers = "=1.0.2" -serde_json = "1.0.79" \ No newline at end of file diff --git a/crates/bindings_old/src/i_uniswap_v3_pool.rs b/crates/bindings_old/src/i_uniswap_v3_pool.rs deleted file mode 100644 index fc51590c..00000000 --- a/crates/bindings_old/src/i_uniswap_v3_pool.rs +++ /dev/null @@ -1,1710 +0,0 @@ -pub use i_uniswap_v3_pool::*; -#[allow(clippy::too_many_arguments, non_camel_case_types)] -pub mod i_uniswap_v3_pool { - #![allow(clippy::enum_variant_names)] - #![allow(dead_code)] - #![allow(clippy::type_complexity)] - #![allow(unused_imports)] - ///IUniswapV3Pool was auto-generated with ethers-rs Abigen. More information at: https://github.com/gakonst/ethers-rs - use std::sync::Arc; - - use ::ethers::{ - contract::{ - builders::{ContractCall, Event}, - Contract, Lazy, - }, - core::{ - abi::{Abi, Detokenize, InvalidOutputType, Token, Tokenizable}, - types::*, - }, - providers::Middleware, - }; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Burn\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CollectProtocol\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Flash\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseObservationCardinalityNext\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Initialize\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Mint\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"SetFeeProtocol\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"flash\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"initialize\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\",\"components\":[]},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFeeProtocol\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - /// The parsed JSON-ABI of the contract. - pub static IUNISWAPV3POOL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("invalid abi") - }); - pub struct IUniswapV3Pool(::ethers::contract::Contract); - impl Clone for IUniswapV3Pool { - fn clone(&self) -> Self { - IUniswapV3Pool(self.0.clone()) - } - } - impl std::ops::Deref for IUniswapV3Pool { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl std::fmt::Debug for IUniswapV3Pool { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - f.debug_tuple(stringify!(IUniswapV3Pool)) - .field(&self.address()) - .finish() - } - } - impl IUniswapV3Pool { - /// Creates a new contract instance with the specified `ethers` - /// client at the given `Address`. The contract derefs to a `ethers::Contract` - /// object - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IUNISWAPV3POOL_ABI.clone(), - client, - )) - } - ///Calls the contract's `burn` (0xa34123a7) function - pub fn burn( - &self, - tick_lower: i32, - tick_upper: i32, - amount: u128, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([163, 65, 35, 167], (tick_lower, tick_upper, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `collect` (0x4f1eb3d8) function - pub fn collect( - &self, - recipient: ::ethers::core::types::Address, - tick_lower: i32, - tick_upper: i32, - amount_0_requested: u128, - amount_1_requested: u128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [79, 30, 179, 216], - ( - recipient, - tick_lower, - tick_upper, - amount_0_requested, - amount_1_requested, - ), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `collectProtocol` (0x85b66729) function - pub fn collect_protocol( - &self, - recipient: ::ethers::core::types::Address, - amount_0_requested: u128, - amount_1_requested: u128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [133, 182, 103, 41], - (recipient, amount_0_requested, amount_1_requested), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `factory` (0xc45a0155) function - pub fn factory( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([196, 90, 1, 85], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fee` (0xddca3f43) function - pub fn fee(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 202, 63, 67], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeGrowthGlobal0X128` (0xf3058399) function - pub fn fee_growth_global_0x128( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([243, 5, 131, 153], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeGrowthGlobal1X128` (0x46141319) function - pub fn fee_growth_global_1x128( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([70, 20, 19, 25], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `flash` (0x490e6cbc) function - pub fn flash( - &self, - recipient: ::ethers::core::types::Address, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([73, 14, 108, 188], (recipient, amount_0, amount_1, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseObservationCardinalityNext` (0x32148f67) function - pub fn increase_observation_cardinality_next( - &self, - observation_cardinality_next: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([50, 20, 143, 103], observation_cardinality_next) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0xf637731d) function - pub fn initialize( - &self, - sqrt_price_x96: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([246, 55, 115, 29], sqrt_price_x96) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `liquidity` (0x1a686502) function - pub fn liquidity(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 104, 101, 2], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxLiquidityPerTick` (0x70cf754a) function - pub fn max_liquidity_per_tick( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 207, 117, 74], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x3c8a7d8d) function - pub fn mint( - &self, - recipient: ::ethers::core::types::Address, - tick_lower: i32, - tick_upper: i32, - amount: u128, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash( - [60, 138, 125, 141], - (recipient, tick_lower, tick_upper, amount, data), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `observations` (0x252c09d7) function - pub fn observations( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (u32, i64, ::ethers::core::types::U256, bool), - > { - self.0 - .method_hash([37, 44, 9, 215], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `observe` (0x883bdbfd) function - pub fn observe( - &self, - seconds_agos: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::std::vec::Vec, - ::std::vec::Vec<::ethers::core::types::U256>, - ), - > { - self.0 - .method_hash([136, 59, 219, 253], seconds_agos) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0x514ea4bf) function - pub fn positions( - &self, - key: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - ), - > { - self.0 - .method_hash([81, 78, 164, 191], key) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `protocolFees` (0x1ad8b03b) function - pub fn protocol_fees(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 216, 176, 59], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setFeeProtocol` (0x8206a4d1) function - pub fn set_fee_protocol( - &self, - fee_protocol_0: u8, - fee_protocol_1: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([130, 6, 164, 209], (fee_protocol_0, fee_protocol_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `slot0` (0x3850c7bd) function - pub fn slot_0( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, i32, u16, u16, u16, u8, bool), - > { - self.0 - .method_hash([56, 80, 199, 189], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `snapshotCumulativesInside` (0xa38807f2) function - pub fn snapshot_cumulatives_inside( - &self, - tick_lower: i32, - tick_upper: i32, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash([163, 136, 7, 242], (tick_lower, tick_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0x128acb08) function - pub fn swap( - &self, - recipient: ::ethers::core::types::Address, - zero_for_one: bool, - amount_specified: ::ethers::core::types::I256, - sqrt_price_limit_x96: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::I256, ::ethers::core::types::I256), - > { - self.0 - .method_hash( - [18, 138, 203, 8], - ( - recipient, - zero_for_one, - amount_specified, - sqrt_price_limit_x96, - data, - ), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tickBitmap` (0x5339c296) function - pub fn tick_bitmap( - &self, - word_position: i16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([83, 57, 194, 150], word_position) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tickSpacing` (0xd0c93a7c) function - pub fn tick_spacing(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 201, 58, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ticks` (0xf30dba93) function - pub fn ticks( - &self, - tick: i32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - i128, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - i64, - ::ethers::core::types::U256, - u32, - bool, - ), - > { - self.0 - .method_hash([243, 13, 186, 147], tick) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `token0` (0x0dfe1681) function - pub fn token_0( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([13, 254, 22, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `token1` (0xd21220a7) function - pub fn token_1( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([210, 18, 32, 167], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Burn` event - pub fn burn_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `CollectProtocol` event - pub fn collect_protocol_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Flash` event - pub fn flash_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `IncreaseObservationCardinalityNext` event - pub fn increase_observation_cardinality_next_filter( - &self, - ) -> ::ethers::contract::builders::Event - { - self.0.event() - } - ///Gets the contract's `Initialize` event - pub fn initialize_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Mint` event - pub fn mint_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `SetFeeProtocol` event - pub fn set_fee_protocol_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - /// Returns an [`Event`](#ethers_contract::builders::Event) builder for all events of this contract - pub fn events(&self) -> ::ethers::contract::builders::Event { - self.0.event_with_filter(Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IUniswapV3Pool - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Burn", - abi = "Burn(address,int24,int24,uint128,uint256,uint256)" - )] - pub struct BurnFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount: u128, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Collect", - abi = "Collect(address,address,int24,int24,uint128,uint128)" - )] - pub struct CollectFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount_0: u128, - pub amount_1: u128, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "CollectProtocol", - abi = "CollectProtocol(address,address,uint128,uint128)" - )] - pub struct CollectProtocolFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: u128, - pub amount_1: u128, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Flash", - abi = "Flash(address,address,uint256,uint256,uint256,uint256)" - )] - pub struct FlashFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - pub paid_0: ::ethers::core::types::U256, - pub paid_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "IncreaseObservationCardinalityNext", - abi = "IncreaseObservationCardinalityNext(uint16,uint16)" - )] - pub struct IncreaseObservationCardinalityNextFilter { - pub observation_cardinality_next_old: u16, - pub observation_cardinality_next_new: u16, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "Initialize", abi = "Initialize(uint160,int24)")] - pub struct InitializeFilter { - pub sqrt_price_x96: ::ethers::core::types::U256, - pub tick: i32, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Mint", - abi = "Mint(address,address,int24,int24,uint128,uint256,uint256)" - )] - pub struct MintFilter { - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount: u128, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "SetFeeProtocol", - abi = "SetFeeProtocol(uint8,uint8,uint8,uint8)" - )] - pub struct SetFeeProtocolFilter { - pub fee_protocol_0_old: u8, - pub fee_protocol_1_old: u8, - pub fee_protocol_0_new: u8, - pub fee_protocol_1_new: u8, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Swap", - abi = "Swap(address,address,int256,int256,uint160,uint128,int24)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::I256, - pub amount_1: ::ethers::core::types::I256, - pub sqrt_price_x96: ::ethers::core::types::U256, - pub liquidity: u128, - pub tick: i32, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum IUniswapV3PoolEvents { - BurnFilter(BurnFilter), - CollectFilter(CollectFilter), - CollectProtocolFilter(CollectProtocolFilter), - FlashFilter(FlashFilter), - IncreaseObservationCardinalityNextFilter(IncreaseObservationCardinalityNextFilter), - InitializeFilter(InitializeFilter), - MintFilter(MintFilter), - SetFeeProtocolFilter(SetFeeProtocolFilter), - SwapFilter(SwapFilter), - } - impl ::ethers::contract::EthLogDecode for IUniswapV3PoolEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::std::result::Result - where - Self: Sized, - { - if let Ok(decoded) = BurnFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::BurnFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CollectProtocolFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::CollectProtocolFilter(decoded)); - } - if let Ok(decoded) = FlashFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::FlashFilter(decoded)); - } - if let Ok(decoded) = IncreaseObservationCardinalityNextFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::IncreaseObservationCardinalityNextFilter(decoded)); - } - if let Ok(decoded) = InitializeFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::InitializeFilter(decoded)); - } - if let Ok(decoded) = MintFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::MintFilter(decoded)); - } - if let Ok(decoded) = SetFeeProtocolFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::SetFeeProtocolFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::SwapFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::std::fmt::Display for IUniswapV3PoolEvents { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - IUniswapV3PoolEvents::BurnFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::CollectFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::CollectProtocolFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::FlashFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::IncreaseObservationCardinalityNextFilter(element) => { - element.fmt(f) - } - IUniswapV3PoolEvents::InitializeFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::MintFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::SetFeeProtocolFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::SwapFilter(element) => element.fmt(f), - } - } - } - ///Container type for all input parameters for the `burn` function with signature `burn(int24,int24,uint128)` and selector `0xa34123a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "burn", abi = "burn(int24,int24,uint128)")] - pub struct BurnCall { - pub tick_lower: i32, - pub tick_upper: i32, - pub amount: u128, - } - ///Container type for all input parameters for the `collect` function with signature `collect(address,int24,int24,uint128,uint128)` and selector `0x4f1eb3d8` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "collect", abi = "collect(address,int24,int24,uint128,uint128)")] - pub struct CollectCall { - pub recipient: ::ethers::core::types::Address, - pub tick_lower: i32, - pub tick_upper: i32, - pub amount_0_requested: u128, - pub amount_1_requested: u128, - } - ///Container type for all input parameters for the `collectProtocol` function with signature `collectProtocol(address,uint128,uint128)` and selector `0x85b66729` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "collectProtocol", - abi = "collectProtocol(address,uint128,uint128)" - )] - pub struct CollectProtocolCall { - pub recipient: ::ethers::core::types::Address, - pub amount_0_requested: u128, - pub amount_1_requested: u128, - } - ///Container type for all input parameters for the `factory` function with signature `factory()` and selector `0xc45a0155` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "factory", abi = "factory()")] - pub struct FactoryCall; - ///Container type for all input parameters for the `fee` function with signature `fee()` and selector `0xddca3f43` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "fee", abi = "fee()")] - pub struct FeeCall; - ///Container type for all input parameters for the `feeGrowthGlobal0X128` function with signature `feeGrowthGlobal0X128()` and selector `0xf3058399` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeGrowthGlobal0X128", abi = "feeGrowthGlobal0X128()")] - pub struct FeeGrowthGlobal0X128Call; - ///Container type for all input parameters for the `feeGrowthGlobal1X128` function with signature `feeGrowthGlobal1X128()` and selector `0x46141319` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeGrowthGlobal1X128", abi = "feeGrowthGlobal1X128()")] - pub struct FeeGrowthGlobal1X128Call; - ///Container type for all input parameters for the `flash` function with signature `flash(address,uint256,uint256,bytes)` and selector `0x490e6cbc` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "flash", abi = "flash(address,uint256,uint256,bytes)")] - pub struct FlashCall { - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `increaseObservationCardinalityNext` function with signature `increaseObservationCardinalityNext(uint16)` and selector `0x32148f67` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "increaseObservationCardinalityNext", - abi = "increaseObservationCardinalityNext(uint16)" - )] - pub struct IncreaseObservationCardinalityNextCall { - pub observation_cardinality_next: u16, - } - ///Container type for all input parameters for the `initialize` function with signature `initialize(uint160)` and selector `0xf637731d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "initialize", abi = "initialize(uint160)")] - pub struct InitializeCall { - pub sqrt_price_x96: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `liquidity` function with signature `liquidity()` and selector `0x1a686502` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "liquidity", abi = "liquidity()")] - pub struct LiquidityCall; - ///Container type for all input parameters for the `maxLiquidityPerTick` function with signature `maxLiquidityPerTick()` and selector `0x70cf754a` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "maxLiquidityPerTick", abi = "maxLiquidityPerTick()")] - pub struct MaxLiquidityPerTickCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,int24,int24,uint128,bytes)` and selector `0x3c8a7d8d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "mint", abi = "mint(address,int24,int24,uint128,bytes)")] - pub struct MintCall { - pub recipient: ::ethers::core::types::Address, - pub tick_lower: i32, - pub tick_upper: i32, - pub amount: u128, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `observations` function with signature `observations(uint256)` and selector `0x252c09d7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "observations", abi = "observations(uint256)")] - pub struct ObservationsCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `observe` function with signature `observe(uint32[])` and selector `0x883bdbfd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "observe", abi = "observe(uint32[])")] - pub struct ObserveCall { - pub seconds_agos: ::std::vec::Vec, - } - ///Container type for all input parameters for the `positions` function with signature `positions(bytes32)` and selector `0x514ea4bf` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "positions", abi = "positions(bytes32)")] - pub struct PositionsCall { - pub key: [u8; 32], - } - ///Container type for all input parameters for the `protocolFees` function with signature `protocolFees()` and selector `0x1ad8b03b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "protocolFees", abi = "protocolFees()")] - pub struct ProtocolFeesCall; - ///Container type for all input parameters for the `setFeeProtocol` function with signature `setFeeProtocol(uint8,uint8)` and selector `0x8206a4d1` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "setFeeProtocol", abi = "setFeeProtocol(uint8,uint8)")] - pub struct SetFeeProtocolCall { - pub fee_protocol_0: u8, - pub fee_protocol_1: u8, - } - ///Container type for all input parameters for the `slot0` function with signature `slot0()` and selector `0x3850c7bd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "slot0", abi = "slot0()")] - pub struct Slot0Call; - ///Container type for all input parameters for the `snapshotCumulativesInside` function with signature `snapshotCumulativesInside(int24,int24)` and selector `0xa38807f2` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "snapshotCumulativesInside", - abi = "snapshotCumulativesInside(int24,int24)" - )] - pub struct SnapshotCumulativesInsideCall { - pub tick_lower: i32, - pub tick_upper: i32, - } - ///Container type for all input parameters for the `swap` function with signature `swap(address,bool,int256,uint160,bytes)` and selector `0x128acb08` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "swap", abi = "swap(address,bool,int256,uint160,bytes)")] - pub struct SwapCall { - pub recipient: ::ethers::core::types::Address, - pub zero_for_one: bool, - pub amount_specified: ::ethers::core::types::I256, - pub sqrt_price_limit_x96: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `tickBitmap` function with signature `tickBitmap(int16)` and selector `0x5339c296` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "tickBitmap", abi = "tickBitmap(int16)")] - pub struct TickBitmapCall { - pub word_position: i16, - } - ///Container type for all input parameters for the `tickSpacing` function with signature `tickSpacing()` and selector `0xd0c93a7c` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "tickSpacing", abi = "tickSpacing()")] - pub struct TickSpacingCall; - ///Container type for all input parameters for the `ticks` function with signature `ticks(int24)` and selector `0xf30dba93` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "ticks", abi = "ticks(int24)")] - pub struct TicksCall { - pub tick: i32, - } - ///Container type for all input parameters for the `token0` function with signature `token0()` and selector `0x0dfe1681` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "token0", abi = "token0()")] - pub struct Token0Call; - ///Container type for all input parameters for the `token1` function with signature `token1()` and selector `0xd21220a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "token1", abi = "token1()")] - pub struct Token1Call; - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum IUniswapV3PoolCalls { - Burn(BurnCall), - Collect(CollectCall), - CollectProtocol(CollectProtocolCall), - Factory(FactoryCall), - Fee(FeeCall), - FeeGrowthGlobal0X128(FeeGrowthGlobal0X128Call), - FeeGrowthGlobal1X128(FeeGrowthGlobal1X128Call), - Flash(FlashCall), - IncreaseObservationCardinalityNext(IncreaseObservationCardinalityNextCall), - Initialize(InitializeCall), - Liquidity(LiquidityCall), - MaxLiquidityPerTick(MaxLiquidityPerTickCall), - Mint(MintCall), - Observations(ObservationsCall), - Observe(ObserveCall), - Positions(PositionsCall), - ProtocolFees(ProtocolFeesCall), - SetFeeProtocol(SetFeeProtocolCall), - Slot0(Slot0Call), - SnapshotCumulativesInside(SnapshotCumulativesInsideCall), - Swap(SwapCall), - TickBitmap(TickBitmapCall), - TickSpacing(TickSpacingCall), - Ticks(TicksCall), - Token0(Token0Call), - Token1(Token1Call), - } - impl ::ethers::core::abi::AbiDecode for IUniswapV3PoolCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::std::result::Result { - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Burn(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Collect(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::CollectProtocol(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Factory(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Fee(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::FeeGrowthGlobal0X128(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::FeeGrowthGlobal1X128(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Flash(decoded)); - } - if let Ok(decoded) = - ::decode( - data.as_ref(), - ) - { - return Ok(IUniswapV3PoolCalls::IncreaseObservationCardinalityNext( - decoded, - )); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Initialize(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Liquidity(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::MaxLiquidityPerTick(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Mint(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Observations(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Observe(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::ProtocolFees(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::SetFeeProtocol(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Slot0(decoded)); - } - if let Ok(decoded) = - ::decode( - data.as_ref(), - ) - { - return Ok(IUniswapV3PoolCalls::SnapshotCumulativesInside(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Swap(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::TickBitmap(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::TickSpacing(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Ticks(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Token0(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Token1(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IUniswapV3PoolCalls { - fn encode(self) -> Vec { - match self { - IUniswapV3PoolCalls::Burn(element) => element.encode(), - IUniswapV3PoolCalls::Collect(element) => element.encode(), - IUniswapV3PoolCalls::CollectProtocol(element) => element.encode(), - IUniswapV3PoolCalls::Factory(element) => element.encode(), - IUniswapV3PoolCalls::Fee(element) => element.encode(), - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(element) => element.encode(), - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(element) => element.encode(), - IUniswapV3PoolCalls::Flash(element) => element.encode(), - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(element) => { - element.encode() - } - IUniswapV3PoolCalls::Initialize(element) => element.encode(), - IUniswapV3PoolCalls::Liquidity(element) => element.encode(), - IUniswapV3PoolCalls::MaxLiquidityPerTick(element) => element.encode(), - IUniswapV3PoolCalls::Mint(element) => element.encode(), - IUniswapV3PoolCalls::Observations(element) => element.encode(), - IUniswapV3PoolCalls::Observe(element) => element.encode(), - IUniswapV3PoolCalls::Positions(element) => element.encode(), - IUniswapV3PoolCalls::ProtocolFees(element) => element.encode(), - IUniswapV3PoolCalls::SetFeeProtocol(element) => element.encode(), - IUniswapV3PoolCalls::Slot0(element) => element.encode(), - IUniswapV3PoolCalls::SnapshotCumulativesInside(element) => element.encode(), - IUniswapV3PoolCalls::Swap(element) => element.encode(), - IUniswapV3PoolCalls::TickBitmap(element) => element.encode(), - IUniswapV3PoolCalls::TickSpacing(element) => element.encode(), - IUniswapV3PoolCalls::Ticks(element) => element.encode(), - IUniswapV3PoolCalls::Token0(element) => element.encode(), - IUniswapV3PoolCalls::Token1(element) => element.encode(), - } - } - } - impl ::std::fmt::Display for IUniswapV3PoolCalls { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - IUniswapV3PoolCalls::Burn(element) => element.fmt(f), - IUniswapV3PoolCalls::Collect(element) => element.fmt(f), - IUniswapV3PoolCalls::CollectProtocol(element) => element.fmt(f), - IUniswapV3PoolCalls::Factory(element) => element.fmt(f), - IUniswapV3PoolCalls::Fee(element) => element.fmt(f), - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(element) => element.fmt(f), - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(element) => element.fmt(f), - IUniswapV3PoolCalls::Flash(element) => element.fmt(f), - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(element) => element.fmt(f), - IUniswapV3PoolCalls::Initialize(element) => element.fmt(f), - IUniswapV3PoolCalls::Liquidity(element) => element.fmt(f), - IUniswapV3PoolCalls::MaxLiquidityPerTick(element) => element.fmt(f), - IUniswapV3PoolCalls::Mint(element) => element.fmt(f), - IUniswapV3PoolCalls::Observations(element) => element.fmt(f), - IUniswapV3PoolCalls::Observe(element) => element.fmt(f), - IUniswapV3PoolCalls::Positions(element) => element.fmt(f), - IUniswapV3PoolCalls::ProtocolFees(element) => element.fmt(f), - IUniswapV3PoolCalls::SetFeeProtocol(element) => element.fmt(f), - IUniswapV3PoolCalls::Slot0(element) => element.fmt(f), - IUniswapV3PoolCalls::SnapshotCumulativesInside(element) => element.fmt(f), - IUniswapV3PoolCalls::Swap(element) => element.fmt(f), - IUniswapV3PoolCalls::TickBitmap(element) => element.fmt(f), - IUniswapV3PoolCalls::TickSpacing(element) => element.fmt(f), - IUniswapV3PoolCalls::Ticks(element) => element.fmt(f), - IUniswapV3PoolCalls::Token0(element) => element.fmt(f), - IUniswapV3PoolCalls::Token1(element) => element.fmt(f), - } - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: BurnCall) -> Self { - IUniswapV3PoolCalls::Burn(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: CollectCall) -> Self { - IUniswapV3PoolCalls::Collect(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: CollectProtocolCall) -> Self { - IUniswapV3PoolCalls::CollectProtocol(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FactoryCall) -> Self { - IUniswapV3PoolCalls::Factory(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeCall) -> Self { - IUniswapV3PoolCalls::Fee(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeGrowthGlobal0X128Call) -> Self { - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeGrowthGlobal1X128Call) -> Self { - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FlashCall) -> Self { - IUniswapV3PoolCalls::Flash(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: IncreaseObservationCardinalityNextCall) -> Self { - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: InitializeCall) -> Self { - IUniswapV3PoolCalls::Initialize(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: LiquidityCall) -> Self { - IUniswapV3PoolCalls::Liquidity(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: MaxLiquidityPerTickCall) -> Self { - IUniswapV3PoolCalls::MaxLiquidityPerTick(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: MintCall) -> Self { - IUniswapV3PoolCalls::Mint(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ObservationsCall) -> Self { - IUniswapV3PoolCalls::Observations(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ObserveCall) -> Self { - IUniswapV3PoolCalls::Observe(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: PositionsCall) -> Self { - IUniswapV3PoolCalls::Positions(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ProtocolFeesCall) -> Self { - IUniswapV3PoolCalls::ProtocolFees(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SetFeeProtocolCall) -> Self { - IUniswapV3PoolCalls::SetFeeProtocol(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Slot0Call) -> Self { - IUniswapV3PoolCalls::Slot0(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SnapshotCumulativesInsideCall) -> Self { - IUniswapV3PoolCalls::SnapshotCumulativesInside(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SwapCall) -> Self { - IUniswapV3PoolCalls::Swap(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TickBitmapCall) -> Self { - IUniswapV3PoolCalls::TickBitmap(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TickSpacingCall) -> Self { - IUniswapV3PoolCalls::TickSpacing(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TicksCall) -> Self { - IUniswapV3PoolCalls::Ticks(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Token0Call) -> Self { - IUniswapV3PoolCalls::Token0(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Token1Call) -> Self { - IUniswapV3PoolCalls::Token1(var) - } - } - ///Container type for all return fields from the `burn` function with signature `burn(int24,int24,uint128)` and selector `0xa34123a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct BurnReturn { - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `collect` function with signature `collect(address,int24,int24,uint128,uint128)` and selector `0x4f1eb3d8` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CollectReturn { - pub amount_0: u128, - pub amount_1: u128, - } - ///Container type for all return fields from the `collectProtocol` function with signature `collectProtocol(address,uint128,uint128)` and selector `0x85b66729` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CollectProtocolReturn { - pub amount_0: u128, - pub amount_1: u128, - } - ///Container type for all return fields from the `factory` function with signature `factory()` and selector `0xc45a0155` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FactoryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `fee` function with signature `fee()` and selector `0xddca3f43` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeReturn(pub u32); - ///Container type for all return fields from the `feeGrowthGlobal0X128` function with signature `feeGrowthGlobal0X128()` and selector `0xf3058399` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeGrowthGlobal0X128Return(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `feeGrowthGlobal1X128` function with signature `feeGrowthGlobal1X128()` and selector `0x46141319` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeGrowthGlobal1X128Return(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `liquidity` function with signature `liquidity()` and selector `0x1a686502` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct LiquidityReturn(pub u128); - ///Container type for all return fields from the `maxLiquidityPerTick` function with signature `maxLiquidityPerTick()` and selector `0x70cf754a` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct MaxLiquidityPerTickReturn(pub u128); - ///Container type for all return fields from the `mint` function with signature `mint(address,int24,int24,uint128,bytes)` and selector `0x3c8a7d8d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct MintReturn { - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `observations` function with signature `observations(uint256)` and selector `0x252c09d7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ObservationsReturn { - pub block_timestamp: u32, - pub tick_cumulative: i64, - pub seconds_per_liquidity_cumulative_x128: ::ethers::core::types::U256, - pub initialized: bool, - } - ///Container type for all return fields from the `observe` function with signature `observe(uint32[])` and selector `0x883bdbfd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ObserveReturn { - pub tick_cumulatives: ::std::vec::Vec, - pub seconds_per_liquidity_cumulative_x12_8s: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all return fields from the `positions` function with signature `positions(bytes32)` and selector `0x514ea4bf` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct PositionsReturn { - pub liquidity: u128, - pub fee_growth_inside_0_last_x128: ::ethers::core::types::U256, - pub fee_growth_inside_1_last_x128: ::ethers::core::types::U256, - pub tokens_owed_0: u128, - pub tokens_owed_1: u128, - } - ///Container type for all return fields from the `protocolFees` function with signature `protocolFees()` and selector `0x1ad8b03b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ProtocolFeesReturn { - pub token_0: u128, - pub token_1: u128, - } - ///Container type for all return fields from the `slot0` function with signature `slot0()` and selector `0x3850c7bd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Slot0Return { - pub sqrt_price_x96: ::ethers::core::types::U256, - pub tick: i32, - pub observation_index: u16, - pub observation_cardinality: u16, - pub observation_cardinality_next: u16, - pub fee_protocol: u8, - pub unlocked: bool, - } - ///Container type for all return fields from the `snapshotCumulativesInside` function with signature `snapshotCumulativesInside(int24,int24)` and selector `0xa38807f2` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct SnapshotCumulativesInsideReturn { - pub tick_cumulative_inside: i64, - pub seconds_per_liquidity_inside_x128: ::ethers::core::types::U256, - pub seconds_inside: u32, - } - ///Container type for all return fields from the `swap` function with signature `swap(address,bool,int256,uint160,bytes)` and selector `0x128acb08` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct SwapReturn { - pub amount_0: ::ethers::core::types::I256, - pub amount_1: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `tickBitmap` function with signature `tickBitmap(int16)` and selector `0x5339c296` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TickBitmapReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `tickSpacing` function with signature `tickSpacing()` and selector `0xd0c93a7c` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TickSpacingReturn(pub i32); - ///Container type for all return fields from the `ticks` function with signature `ticks(int24)` and selector `0xf30dba93` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TicksReturn { - pub liquidity_gross: u128, - pub liquidity_net: i128, - pub fee_growth_outside_0x128: ::ethers::core::types::U256, - pub fee_growth_outside_1x128: ::ethers::core::types::U256, - pub tick_cumulative_outside: i64, - pub seconds_per_liquidity_outside_x128: ::ethers::core::types::U256, - pub seconds_outside: u32, - pub initialized: bool, - } - ///Container type for all return fields from the `token0` function with signature `token0()` and selector `0x0dfe1681` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Token0Return(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `token1` function with signature `token1()` and selector `0xd21220a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Token1Return(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings_old/src/lib.rs b/crates/bindings_old/src/lib.rs deleted file mode 100644 index d1b4f1ba..00000000 --- a/crates/bindings_old/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -#![allow(clippy::all)] -//! This lib contains abigen! generated bindings for solidity contracts. -//! This is autogenerated code. -//! Do not manually edit these files. -//! These files may be overwritten by the codegen system at any time. -pub mod i_uniswap_v3_pool; -pub mod uniswap_v3_factory; diff --git a/crates/bindings_old/src/uniswap_v3_factory.rs b/crates/bindings_old/src/uniswap_v3_factory.rs deleted file mode 100644 index 472d03bd..00000000 --- a/crates/bindings_old/src/uniswap_v3_factory.rs +++ /dev/null @@ -1,529 +0,0 @@ -pub use uniswap_v3_factory::*; -#[allow(clippy::too_many_arguments, non_camel_case_types)] -pub mod uniswap_v3_factory { - #![allow(clippy::enum_variant_names)] - #![allow(dead_code)] - #![allow(clippy::type_complexity)] - #![allow(unused_imports)] - ///UniswapV3Factory was auto-generated with ethers-rs Abigen. More information at: https://github.com/gakonst/ethers-rs - use std::sync::Arc; - - use ::ethers::{ - contract::{ - builders::{ContractCall, Event}, - Contract, Lazy, - }, - core::{ - abi::{Abi, Detokenize, InvalidOutputType, Token, Tokenizable}, - types::*, - }, - providers::Middleware, - }; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"FeeAmountEnabled\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"OwnerChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PoolCreated\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"enableFeeAmount\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setOwner\",\"outputs\":[]}]"; - /// The parsed JSON-ABI of the contract. - pub static UNISWAPV3FACTORY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("invalid abi") - }); - pub struct UniswapV3Factory(::ethers::contract::Contract); - impl Clone for UniswapV3Factory { - fn clone(&self) -> Self { - UniswapV3Factory(self.0.clone()) - } - } - impl std::ops::Deref for UniswapV3Factory { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl std::fmt::Debug for UniswapV3Factory { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - f.debug_tuple(stringify!(UniswapV3Factory)) - .field(&self.address()) - .finish() - } - } - impl UniswapV3Factory { - /// Creates a new contract instance with the specified `ethers` - /// client at the given `Address`. The contract derefs to a `ethers::Contract` - /// object - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UNISWAPV3FACTORY_ABI.clone(), - client, - )) - } - ///Calls the contract's `createPool` (0xa1671295) function - pub fn create_pool( - &self, - token_a: ::ethers::core::types::Address, - token_b: ::ethers::core::types::Address, - fee: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([161, 103, 18, 149], (token_a, token_b, fee)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `enableFeeAmount` (0x8a7c195f) function - pub fn enable_fee_amount( - &self, - fee: u32, - tick_spacing: i32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([138, 124, 25, 95], (fee, tick_spacing)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeAmountTickSpacing` (0x22afcccb) function - pub fn fee_amount_tick_spacing( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([34, 175, 204, 203], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPool` (0x1698ee82) function - pub fn get_pool( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - p2: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 152, 238, 130], (p0, p1, p2)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `owner` (0x8da5cb5b) function - pub fn owner( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([141, 165, 203, 91], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `parameters` (0x89035730) function - pub fn parameters( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::Address, - u32, - i32, - ), - > { - self.0 - .method_hash([137, 3, 87, 48], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setOwner` (0x13af4035) function - pub fn set_owner( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([19, 175, 64, 53], owner) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `FeeAmountEnabled` event - pub fn fee_amount_enabled_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `OwnerChanged` event - pub fn owner_changed_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `PoolCreated` event - pub fn pool_created_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - /// Returns an [`Event`](#ethers_contract::builders::Event) builder for all events of this contract - pub fn events(&self) -> ::ethers::contract::builders::Event { - self.0.event_with_filter(Default::default()) - } - } - impl From<::ethers::contract::Contract> - for UniswapV3Factory - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "FeeAmountEnabled", abi = "FeeAmountEnabled(uint24,int24)")] - pub struct FeeAmountEnabledFilter { - #[ethevent(indexed)] - pub fee: u32, - #[ethevent(indexed)] - pub tick_spacing: i32, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "OwnerChanged", abi = "OwnerChanged(address,address)")] - pub struct OwnerChangedFilter { - #[ethevent(indexed)] - pub old_owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub new_owner: ::ethers::core::types::Address, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "PoolCreated", - abi = "PoolCreated(address,address,uint24,int24,address)" - )] - pub struct PoolCreatedFilter { - #[ethevent(indexed)] - pub token_0: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_1: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub fee: u32, - pub tick_spacing: i32, - pub pool: ::ethers::core::types::Address, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum UniswapV3FactoryEvents { - FeeAmountEnabledFilter(FeeAmountEnabledFilter), - OwnerChangedFilter(OwnerChangedFilter), - PoolCreatedFilter(PoolCreatedFilter), - } - impl ::ethers::contract::EthLogDecode for UniswapV3FactoryEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::std::result::Result - where - Self: Sized, - { - if let Ok(decoded) = FeeAmountEnabledFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::FeeAmountEnabledFilter(decoded)); - } - if let Ok(decoded) = OwnerChangedFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::OwnerChangedFilter(decoded)); - } - if let Ok(decoded) = PoolCreatedFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::PoolCreatedFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::std::fmt::Display for UniswapV3FactoryEvents { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - UniswapV3FactoryEvents::FeeAmountEnabledFilter(element) => element.fmt(f), - UniswapV3FactoryEvents::OwnerChangedFilter(element) => element.fmt(f), - UniswapV3FactoryEvents::PoolCreatedFilter(element) => element.fmt(f), - } - } - } - ///Container type for all input parameters for the `createPool` function with signature `createPool(address,address,uint24)` and selector `0xa1671295` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "createPool", abi = "createPool(address,address,uint24)")] - pub struct CreatePoolCall { - pub token_a: ::ethers::core::types::Address, - pub token_b: ::ethers::core::types::Address, - pub fee: u32, - } - ///Container type for all input parameters for the `enableFeeAmount` function with signature `enableFeeAmount(uint24,int24)` and selector `0x8a7c195f` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "enableFeeAmount", abi = "enableFeeAmount(uint24,int24)")] - pub struct EnableFeeAmountCall { - pub fee: u32, - pub tick_spacing: i32, - } - ///Container type for all input parameters for the `feeAmountTickSpacing` function with signature `feeAmountTickSpacing(uint24)` and selector `0x22afcccb` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeAmountTickSpacing", abi = "feeAmountTickSpacing(uint24)")] - pub struct FeeAmountTickSpacingCall(pub u32); - ///Container type for all input parameters for the `getPool` function with signature `getPool(address,address,uint24)` and selector `0x1698ee82` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "getPool", abi = "getPool(address,address,uint24)")] - pub struct GetPoolCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - pub u32, - ); - ///Container type for all input parameters for the `owner` function with signature `owner()` and selector `0x8da5cb5b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "owner", abi = "owner()")] - pub struct OwnerCall; - ///Container type for all input parameters for the `parameters` function with signature `parameters()` and selector `0x89035730` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "parameters", abi = "parameters()")] - pub struct ParametersCall; - ///Container type for all input parameters for the `setOwner` function with signature `setOwner(address)` and selector `0x13af4035` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "setOwner", abi = "setOwner(address)")] - pub struct SetOwnerCall { - pub owner: ::ethers::core::types::Address, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum UniswapV3FactoryCalls { - CreatePool(CreatePoolCall), - EnableFeeAmount(EnableFeeAmountCall), - FeeAmountTickSpacing(FeeAmountTickSpacingCall), - GetPool(GetPoolCall), - Owner(OwnerCall), - Parameters(ParametersCall), - SetOwner(SetOwnerCall), - } - impl ::ethers::core::abi::AbiDecode for UniswapV3FactoryCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::std::result::Result { - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::CreatePool(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::EnableFeeAmount(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::FeeAmountTickSpacing(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::GetPool(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::Owner(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::Parameters(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::SetOwner(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for UniswapV3FactoryCalls { - fn encode(self) -> Vec { - match self { - UniswapV3FactoryCalls::CreatePool(element) => element.encode(), - UniswapV3FactoryCalls::EnableFeeAmount(element) => element.encode(), - UniswapV3FactoryCalls::FeeAmountTickSpacing(element) => element.encode(), - UniswapV3FactoryCalls::GetPool(element) => element.encode(), - UniswapV3FactoryCalls::Owner(element) => element.encode(), - UniswapV3FactoryCalls::Parameters(element) => element.encode(), - UniswapV3FactoryCalls::SetOwner(element) => element.encode(), - } - } - } - impl ::std::fmt::Display for UniswapV3FactoryCalls { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - UniswapV3FactoryCalls::CreatePool(element) => element.fmt(f), - UniswapV3FactoryCalls::EnableFeeAmount(element) => element.fmt(f), - UniswapV3FactoryCalls::FeeAmountTickSpacing(element) => element.fmt(f), - UniswapV3FactoryCalls::GetPool(element) => element.fmt(f), - UniswapV3FactoryCalls::Owner(element) => element.fmt(f), - UniswapV3FactoryCalls::Parameters(element) => element.fmt(f), - UniswapV3FactoryCalls::SetOwner(element) => element.fmt(f), - } - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: CreatePoolCall) -> Self { - UniswapV3FactoryCalls::CreatePool(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: EnableFeeAmountCall) -> Self { - UniswapV3FactoryCalls::EnableFeeAmount(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: FeeAmountTickSpacingCall) -> Self { - UniswapV3FactoryCalls::FeeAmountTickSpacing(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: GetPoolCall) -> Self { - UniswapV3FactoryCalls::GetPool(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: OwnerCall) -> Self { - UniswapV3FactoryCalls::Owner(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: ParametersCall) -> Self { - UniswapV3FactoryCalls::Parameters(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: SetOwnerCall) -> Self { - UniswapV3FactoryCalls::SetOwner(var) - } - } - ///Container type for all return fields from the `createPool` function with signature `createPool(address,address,uint24)` and selector `0xa1671295` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CreatePoolReturn { - pub pool: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `feeAmountTickSpacing` function with signature `feeAmountTickSpacing(uint24)` and selector `0x22afcccb` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeAmountTickSpacingReturn(pub i32); - ///Container type for all return fields from the `getPool` function with signature `getPool(address,address,uint24)` and selector `0x1698ee82` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct GetPoolReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `owner` function with signature `owner()` and selector `0x8da5cb5b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct OwnerReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `parameters` function with signature `parameters()` and selector `0x89035730` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ParametersReturn { - pub factory: ::ethers::core::types::Address, - pub token_0: ::ethers::core::types::Address, - pub token_1: ::ethers::core::types::Address, - pub fee: u32, - pub tick_spacing: i32, - } -} diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 398facb1..406db9ae 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -8,6 +8,7 @@ use simulate::{ environment::{recast_address, SimulationContract, SimulationManager}, price_simulation::PriceSimulation, }; +use bindings::{weth9, simple_registry, rmm01_portfolio}; mod config; #[derive(Parser)] @@ -49,8 +50,8 @@ async fn main() -> Result<()> { // Deploy the WETH contract. let weth = SimulationContract::new( - BaseContract::from(bindings::weth9::WETH9_ABI.clone()), - bindings::weth9::WRITER_BYTECODE + BaseContract::from(weth9::WETH9_ABI.clone()), + weth9::WETH9_BYTECODE .clone() .into_iter() .collect(), @@ -60,8 +61,8 @@ async fn main() -> Result<()> { // Deploy the registry contract. let registry = SimulationContract::new( - BaseContract::from(bindings::simple_registry::SIMPLEREGISTRY_ABI.clone()), - bindings::simple_registry::SIMPLEREGISTRY_BYTECODE + BaseContract::from(simple_registry::SIMPLEREGISTRY_ABI.clone()), + simple_registry::SIMPLEREGISTRY_BYTECODE .clone() .into_iter() .collect(), @@ -71,8 +72,8 @@ async fn main() -> Result<()> { // Deploy the portfolio contract. let portfolio = SimulationContract::new( - BaseContract::from(bindings::rmm01_portfolio::RMM01PORTFOLIO_ABI.clone()), - bindings::rmm01_portfolio::RMM01PORTFOLIO_BYTECODE + BaseContract::from(rmm01_portfolio::RMM01PORTFOLIO_ABI.clone()), + rmm01_portfolio::RMM01PORTFOLIO_BYTECODE .clone() .into_iter() .collect(), diff --git a/foundry.toml b/foundry.toml index 57d49368..38b81a6b 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,12 +1,11 @@ [profile.default] # all profiles inherit from this -# solc = '0.8.19' -src = 'lib/portfolio/contracts' +src = 'lib/' out = 'out/' # default test = 'test' # default libs = ['lib'] cache = false # !important! breaks echidna if cache = true. remappings = [ - 'forge-std/=lib/forge-std/src/', - 'solmate/=lib/solmate/src/', - 'solstat/=lib/solstat/src/', + '@forge-std/=lib/forge-std/src/', + '@solmate/=lib/solmate/src/', + '@solstat/=lib/solstat/src/', ] \ No newline at end of file diff --git a/lib/arbmod b/lib/arbmod index a8c6e980..66897b90 160000 --- a/lib/arbmod +++ b/lib/arbmod @@ -1 +1 @@ -Subproject commit a8c6e980e0e12ff756e0b63f21273c5f6834787d +Subproject commit 66897b907c3090a91288b55d54e774b319967871